VBA 동적 배열 (Redim 과 Redim Preserve)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 4월 11, 2023

이 튜토리얼에서는 VBA에서 동적 배열(Redim 과 Redim Preserve)을 사용하는 방법을 보여드립니다.

동적 배열

동적 배열은 일반 배열과 달리 크기를 변경할 수 있는 배열입니다.

동적 배열을 선언하려면 배열 크기는 생략해야합니다:

Dim strNames() As String

그런 다음 배열에 값을 할당하기 전에 ReDim 문을 사용하여 배열을 원하는 크기로 설정해야 합니다:

ReDim strNames(1 to 3)

이제 배열 크기를 변경하고 싶을 때마다 ReDim(또는 아래에서 배우게 될 ReDim Preserve)을 사용하여 재정의하면 됩니다.

Variant 동적 배열

참고: Variant 배열은 조금 다릅니다. Variant 배열을 사용하면 값을 할당하기 전에 ReDim문을 사용하여 배열 크기를 설정할 필요가 없습니다.

Sub TestArray()
'변수를 선언합니다
    Dim varNames() As Variant
'배열을 채워줍니다
    varNames() = Array("Fred", "Wilma", "Barney", "Betty")
'배열 값을 반환합니다
    MsgBox Join(varNames, ",")
End Sub

Redim vs. Redim Preserve

ReDim 문은 배열의 크기를 조정하여 기존 값을 모두 삭제합니다.

ReDim Preserve 문은 기존의 모든 값을 유지하면서 배열의 크기를 조정합니다.

ReDim 사용하기

실제로 ReDim을 사용하여 배열의 크기를 조정하는 방법은 다음과 같습니다:

Sub TestReDim()
'문자열 배열을 선언합니다
   Dim strNames() As String
'3개의 값을 담을수 있도록 문자열 배열의 크기를 조정합니다
   ReDim strNames(1 to 3)
'3개의 이름을 배열 값으로 채워줍니다
   strNames(1) = "철수"
   strNames(2) = "영희"
   strNames(3) = "영수"
'직접 실행 창에 배열의 값들을 표시합니다
   Debug.Print Join(strNames, vbCrLf)
End Sub

ReDim Preserve 사용하기

이 예제에서는 ReDim을 사용하여 동적 배열을 설정한 다음 ReDim Preserve를 사용하여 원래 값을 유지하면서 배열의 크기를 조정합니다:

Sub TestReDim()
'문자열 배열을 선언합니다
   Dim strNames() As String
'3개의 값을 담을수 있도록 문자열 배열의 크기를 조정합니다
   ReDim strNames(1 to 3)
'3개의 이름을 배열 값으로 채워줍니다
   strNames(1) = "철수"
   strNames(2) = "영희"
   strNames(3) = "영수"
'직접 실행 창에 배열의 값들을 표시합니다
   Debug.Print Join(strNames, vbCrLf)
'기존 데이터를 유지하면서 기존 배열의 크기를 조절합니다
   ReDim Preserve strNames(1 to 4)
   strNames(4) = "영숙"
'직접 실행 창에 배열의 값들을 표시합니다
   Debug.Print Join(strNames, vbCrLf)
End Sub

PRESERVE 문을 사용하지 않으면 이전 배열에 있던 데이터가 손실됩니다.

위의 직접실행 창에서 배열은 철수, 영희 및 영숙이 있었습니다. 배열을 다시 선언하면 해당 값이 제거되고 대신 빈 값 3개와 ‘영숙’ 값이 반환됩니다. 이는 PRESERVE 문이 생략되었기 때문입니다.

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기