VBA

VBA 배열의 선언과 사용

꼰대 부장 2025. 2. 8. 09:02

VBA에서 배열(Array)은 동일한 데이터 유형의 여러 값을 하나의 변수에 저장할 수 있도록 도와주는 중요한 기능입니다. 배열을 사용하면 여러 개의 변수를 각각 선언하는 대신 하나의 변수로 다룰 수 있어 코드가 간결해지고 효율성이 높아집니다.

1. 배열의 선언과 사용

배열을 선언할 때 Dim 키워드를 사용하며, 배열의 크기를 지정해야 합니다.

 

Dim numbers(4) As Integer ' 0부터 4까지 총 5개의 정수 저장

배열 요소는 인덱스를 통해 접근할 수 있으며, VBA에서는 기본적으로 인덱스가 0부터 시작합니다.

 

배열 예제

Sub ArrayExample()
    Dim numbers(4) As Integer
    numbers(0) = 10
    numbers(1) = 20
    numbers(2) = 30
    numbers(3) = 40
    numbers(4) = 50
    
    Dim i As Integer
    For i = 0 To 4
        MsgBox "numbers(" & i & ") = " & numbers(i)
    Next i
End Sub

이 코드에서는 numbers 배열에 5개의 값을 저장하고, For 루프를 사용하여 각 값을 출력합니다.


2. 2차원 배열의 선언과 사용

 

2차원 배열은 행과 열을 가지는 배열로, 테이블 형태의 데이터를 저장하는 데 유용합니다.

Dim matrix(2, 2) As Integer ' 3x3 배열 선언 (0~2, 0~2)

 

2차원 배열 예제

Sub TwoDimArrayExample()
    Dim matrix(2, 2) As Integer
    
    matrix(0, 0) = 1
    matrix(0, 1) = 2
    matrix(0, 2) = 3
    matrix(1, 0) = 4
    matrix(1, 1) = 5
    matrix(1, 2) = 6
    matrix(2, 0) = 7
    matrix(2, 1) = 8
    matrix(2, 2) = 9
    
    MsgBox "Matrix center value: " & matrix(1, 1)
End Sub

이 코드에서는 3x3 크기의 2차원 배열을 생성하고, 값을 할당한 후 중앙 값(matrix(1,1))을 출력합니다.


3. 동적 배열 사용

동적 배열은 크기를 미리 지정하지 않고, 실행 중에 ReDim을 사용하여 크기를 변경할 수 있습니다. Preserve 키워드를 사용하면 기존 데이터를 유지하면서 크기를 조정할 수 있습니다.

Dim dynArray() As Integer ' 크기를 지정하지 않음

 

동적 배열 예제

Sub DynamicArrayExample()
    Dim dynArray() As Integer
    Dim i As Integer
    
    ReDim dynArray(2) ' 배열 크기 설정 (3개의 요소)
    For i = 0 To 2
        dynArray(i) = (i + 1) * 10
    Next i
    
    ReDim Preserve dynArray(4) ' 배열 크기 확장, 기존 데이터 유지
    dynArray(3) = 40
    dynArray(4) = 50
    
    For i = 0 To 4
        MsgBox "dynArray(" & i & ") = " & dynArray(i)
    Next i
End Sub

이 코드에서는 dynArray 배열을 먼저 3개의 요소로 선언한 후, ReDim Preserve를 사용하여 크기를 5개로 확장하고 데이터를 유지하면서 새로운 값을 추가합니다.


이와 같이 VBA에서 배열을 활용하면 여러 개의 데이터를 효율적으로 관리할 수 있습니다. 배열을 적절히 사용하면 반복적인 작업을 줄이고, 코드의 가독성을 높일 수 있습니다.

'VBA' 카테고리의 다른 글

엑셀(Excel) VBA GoTo 문으로 이동하기  (0) 2025.02.09
엑셀(Excel) VBA IF 문 함수  (0) 2025.02.09
VBA 변수와 예제  (0) 2025.02.08
매크로 기록기 사용하기  (0) 2023.03.27
리본 메뉴에 "개발도구" 탭 표시하기  (0) 2023.03.14