본문 바로가기
Excel/VBA 공부

얼렁뚱땅 엑셀 VBA] 배열변수, 동적 배열변수

by excelnote2 2017. 5. 18.




배열변수



배열을 저장할 수 있는 배열변수는 별도 표시가 없는 경우 인덱스 번호 0부터.(필요한 변수 갯수보다 하나 적은 숫자 기입)


인덱스 번호를 1부터 사용하려면 to를 함께 사용



Dim 배열변수(9) As String            ' 10개의 변수 저장 가능


Dim 배열변수(1 to 10) As String     '10개의 변수 저장 가능




엑셀 매크로 VBA 배열 변수








다차원 배열변수


2차원 배열이 제일 많이 사용됨


R * C 형태로 사용됨(Row * Column)


로또 결과를 50회차까지 저장하려면 50*6 형태를 사용. 



Dim 로또누적(1 to 50, 1 to 6)


로또누적(1, 1) = 2

로또누적(1, 2) = 11

로또누적(1, 3) = 16

.

.

.

로또누적(50, 4) = 30

로또누적(50, 5) = 37

로또누적(50, 6) = 41






동적 배열변수


배열변수에 들어갈 개수를 정확히 모르는 경우 동적 배열변수 사용


선언할 때는 ( )만 사용하고 ReDim 문으로 변수 크기 조정. 



1
2
3
4
5
6
7
Dim 변수명() As 데이터 형식
 
Redim 변수명 (1 to 3)            ' 변수 크기 3으로 재정의
 
변수명(1= 10                       ' 첫번째 변수에 10 입력
 
Redim Preserve 변수명 (1 to 10)     ' Preserve 키워드 - 이미 입력된 변수 데이터 보존
cs




동적 배열변수를 다차원 배열변수에 사용할 경우 주의할 점은 Preserve 키워드를 사용할 경우 1차원에 해당하는 Row값은 변경할 수 없고 2차원에 해당하는 Column값만 변경할 수 있다


즉 , 아래 예시처럼 (50 * 6) 형식으로 2차원 배열변수를 선언했을 때 2차원에 해당하는 6을 변경하는 것은 가능하지만, 1차원의 50을 변경하는 것은 불가능하다. 






덧. 

Preserve 키워드를 사용하지 않는다면 1차원 배열 크기를 변경하는 것도 가능하다.


댓글