ReDim 명령문

동적 배열 변수를 선언하고 프로시저 수준에서 저장영역을 할당하거나 재할당합니다.

구문

ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .

인수:

  • Preserve: 마지막 차원의 크기를 변경할 때 기존 배열의 데이터를 보존합니다.

  • Varname: 변수의 이름으로, 표준 변수 이름 지정 규칙을 따릅니다.

  • Subscripts: 배열 변수의 차원입니다.

주석

ReDim 명령문은 차원 하위 스크립트 없이 빈 괄호로 묶인 Private, Public 또는 Dim 명령문을 사용하여 공식적으로 선언된 동적 배열의 크기를 조정하거나 크기를 조정하는 데 사용됩니다. ReDim 명령문을 반복적으로 사용하여 배열의 요소 및 차원 수를 변경할 수 있습니다.

Preserve 키워드를 사용하는 경우 마지막 배열 차원만 크기를 조정할 수 있으며 차원 수를 변경할 수는 없습니다. 예를 들어, 배열에 차원이 하나만 있는 경우 해당 차원은 마지막 차원이고 유일한 차원이므로 크기를 조정할 수 있습니다. 그러나 배열에 2개 이상의 차원이 있는 경우 마지막 차원의 크기만 변경하고 배열의 내용을 유지할 수 있습니다.

다음 예에서는 배열에 포함된 기존 데이터를 지우지 않고 동적 배열의 마지막 차원 크기를 늘릴 수 있는 방법을 보여줍니다.

예 1: 기본 ReDim 사용(Preserve 사용 안함)

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements
ReDim arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
'If you try to access indexes 0, 1, 2 there will be no values.
' The previous values are lost because we did not use Preserve
arr(3) = "Date"
arr(4) = "Elderberry"

예 2: ReDim Preserve를 사용하여 기존 데이터 유지

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements, keeping the existing data
ReDim Preserve arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
' The previous values are preserved, so we can add more elements
arr(3) = "Date"
arr(4) = "Elderberry"

주의: 배열을 원래보다 작게 생성하면 제거된 요소의 데이터가 손실됩니다.

변수가 초기화되면 숫자 변수가 0으로 초기화되고 문자열 변수가 길이가 0인 문자열("")로 초기화됩니다. 객체를 참조하는 변수는 사용하기 전에 Set 명령문을 사용하여 기존 객체에 지정되어야 합니다. 객체가 지정될 때까지 선언된 객체 변수는 특수 값 Nothing을 가집니다.