티스토리 뷰


배열이란 무엇일까요? 배열은 변수를 여러개 모아놓은 데이터 타입을 의미합니다.

변수는 하나의 데이터타입의 하나의 값만을 저장할 수 있는 공간이지요. 배열은 동일한 데이터 타입을 여러개 저장할 수 있는 공간이라고 보면 됩니다. 


예를 들어 문자열 데이터를 3개 저장하고자 한다면 아래와 같이 변수를 사용할 수 있습니다.


Dim strValue1 As String

Dim strValue2 As String

Dim strValue3 As String


3개정도는 저장하는데 문제가 없을것 같습니다. 하지만 저장해야 하는 데이터가 10000개라면 어떻게 될까요?

변수를 10000개 선언해야 할까요.



배열이라니, 배열이라니!! 


그럼 배열을 만드는 방법을 알아볼까요. 

배열을 만드는 방법 또한 Dim을 통해서 합니다. 방법은 아래와 같아요. 


아래의 방법은 배열의 갯수가 정해진 정적 배열을 만드는 방법입니다. 


1. 정적 배열 만들기


Dim 배열이름(배열 크기) As 데이터형 

Dim 배열이름(시작 값 To 종료 값) As 데이터형


위에서 예를 든것과 같이 10000개 짜리 배열을 만들고자 한다면, 아래와 같이 할 수 있겠지요.


Dim arrays(10000) as String


그럼 배열에 값을 쓰거나, 읽기위해서 접근하는 방법은 어떻게 될까요.

위의 배열은 10000개의 문자열을 저장할 수 있습니다. 


배열에 쓰고 읽는 방법은 아래와 같습니다. 


' 배열에 값 넣기

arrays(10) ="ABC"


' 배열에서 값 읽어오기

Dim strValue as String

strValue = arrays(10)


배열 생성을 할 때 배열의 갯수가 정해진 정적 배열에 대해서 알아보았는데요.

당연히 배열의 갯수가 정해지지 않은 동적 배열도 생성이 가능합니다. 



동적 배열은 무엇이냐, 배열도 어려운데..

2. 동적 배열


동적 배열을 선언하는 방법은 아래와 같습니다.


Dim 배열이름() As 데이터 타입

ReDim 배열이름(배열 크기) 


ReDim이라는 명령어를 통해서 배열의 크기를 재지정하게 되는데요. ReDim을 여러번 호출을 하게되면 가장 마지막에 호출된 크기로 배열의 크기가 지정이 됩니다. 


아래의 예를 한번 살펴볼까요?


Sub DynamicArrayTest()


Dim arrays() As Integer

ReDim arrays(100) ' 배열의 크기가 100인 배열 생성

Dim arrayIndex As Integer


For arrayIndex = 1 To 100

    arrays(arrayIndex ) = arrayIndex 

Next


ReDim arrays(5000) ' 배열의 크기가 500인 배열 생성


End Sub


이 글에서는 엑셀 매크로 프로그래밍 방법중에 배열을 생성하는 방법을 알아보았습니다. 엑셀 매크로 프로그래밍에서는 정적 배열과 동적 배열을 생성하는 방법이 있으며, 동적배열을 가장 마지막에 Redim한 크기로 배열이 생성되는 것을 확인할 수 있었습니다.


그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면, 아래의 하트를 눌러주세요.

댓글