안녕하세요.

 

배열(Array)은 변수의 한 종류입니다.

 

같은 형식의 데이터를 많이 저장해야 하는 경우 하나하나 변수를 정해 저장하기 불편합니다.

한 반 학생이 10명인 경우 이름, 전화번호를 저장하려고 할 때 이름을 저장할 변수 10개, 전화번호를 저장할 변수 10개를 만드는 것보다 대표로 이름 변수, 전화번호 변수를 지정한 다음 변수 안에서 나눠 각 10개씩 저장하면 대표 이름 두 개만 기억하면 되기 때문에 편리합니다.

아파트의 동과 같은 형식으로 쓰는 것입니다.

 

배열 이름형식, 크기를 선언합니다.

Dim 이름(10)
Dim 전화번호(10)

형식을 정하지 않으면 베리언트(Variant)형이 됩니다.

 

배열 크기를 지정하는 숫자를 첨자(Subscript)라고 합니다.

10으로 지정하면 실제는 0부터 10까지 총 11개의 공간이 생깁니다.

원한다면 배열을 선언할 때 배열 시작값을 지정해 딱 10개만 생기도록 지정할 수 있습니다.

Dim 이름(1 To 10)
Dim 전화번호(1 To 10)

첨자쉼표를 기준으로 여러 개 쓸 수 있는데, 첨자가 하나만 쓰인 배열은 1차원, 첨자를 두 개 쓰면 2차원, 첨자를 세 개 쓰면 3차원 배열이 됩니다.

 

배열을 미리 선언하지 않고 만들 수도 있는데, Array 함수를 이용합니다.

이 방법은 배열을 만들면서 값도 바로 넣게 됩니다.

 

이때 변수 형식은 베리언트(Variant)형이어야 합니다.

Dim a

a=Array(1, 2, 3)

변수를 선언할 때 따로 형식을 지정하지 않았기 때문에 변수 a베리언트형입니다.

a 변수를 1차원 배열로 바꾸면서 첫번째 위치에 1, 두번째 위치에 2, 세번째 위치에 3을 입력하게 됩니다.

 

직접 배열을 선언하고 값을 넣는 것과 같은 결과입니다.

Dim a(2)

a(0) = 1
a(1) = 2
a(2) = 3

LBound 함수와 UBound 함수로 배열 크기의 첫번째와 마지막을 확인할 수 있습니다.

 

배열 크기를 지정할 때 0부터 시작하기 때문에 만들려는 공간보다 1 작은 값으로 선언하는 불편함이 있습니다.

이때 모듈의 일반선언부Option Base 문을 이용해 배열 시작값을 0 또는 1로 정할 수 있습니다.

Option Base 문을 쓰는 경우 0은 기본값이니 쓸 일이 없고, 1로 지정할 때 사용합니다.

 

배열을 이용해 많은 반복 작업을 쉽게 처리할 수 있습니다.

+ Recent posts