Excel VBA - 동적 배열

2025. 3. 17. 10:36Microsoft Excel

728x90
반응형
SMALL


 

엑셀 함수 시리즈 #64: VBA 동적 배열 - 유연한 데이터 관리를 위한 핵심

VBA(Visual Basic for Applications) 동적 배열은 실행 중에 배열의 크기를 변경할 수 있어 유연한 데이터 관리를 가능하게 합니다. 동적 배열을 사용하면 데이터의 크기를 미리 알 수 없는 경우에도 효율적으로 데이터를 처리할 수 있습니다. 이번 글에서는 VBA 동적 배열의 기본 개념과 사용 방법, 활용 예시를 알아보겠습니다.

반응형

1. 동적 배열이란?

동적 배열은 실행 중에 배열의 크기를 변경할 수 있는 배열입니다. ReDim 문을 사용하여 배열의 크기를 변경하고 ReDim Preserve 문을 사용하여 배열의 기존 데이터를 유지하면서 크기를 변경할 수 있습니다.

2. 동적 배열 선언 방법

  1. 동적 배열 선언: 배열의 크기를 지정하지 않고 동적 배열을 선언합니다.
Dim 배열명() As 데이터형식
  1. 배열 크기 변경: ReDim 문을 사용하여 배열의 크기를 변경합니다.
ReDim 배열명(인덱스범위)
  1. 배열 크기 변경 및 데이터 유지: ReDim Preserve 문을 사용하여 배열의 크기를 변경하고 기존 데이터를 유지합니다.
ReDim Preserve 배열명(인덱스범위)
728x90

3. 동적 배열 활용 예시

  1. 사용자 입력에 따른 동적 배열 크기 조정: 사용자로부터 입력받은 개수만큼 배열의 크기를 조정합니다.
Sub DynamicArrayExample()
    Dim names() As String
    Dim count As Integer
    Dim i As Integer

    count = InputBox("이름 개수를 입력하세요.")
    ReDim names(1 To count)

    For i = 1 To count
        names(i) = InputBox(i & "번째 이름을 입력하세요.")
    Next i

    MsgBox names(2) ' 2번째 요소 출력
End Sub
  1. 데이터 추가에 따른 동적 배열 크기 조정: 데이터를 추가할 때마다 배열의 크기를 1씩 늘립니다.
Sub AddDataToDynamicArray()
    Dim data() As Variant
    Dim count As Integer
    Dim inputData As Variant

    count = 0
    Do While True
        inputData = InputBox("데이터를 입력하세요. (종료: 빈 값)")
        If inputData = "" Then Exit Do
        count = count + 1
        ReDim Preserve data(1 To count)
        data(count) = inputData
    Loop

    MsgBox data(2) ' 2번째 요소 출력
End Sub
  1. 2차원 동적 배열: 2차원 동적 배열을 사용하여 테이블 형태의 데이터를 처리합니다.
Sub Dynamic2DArrayExample()
    Dim matrix() As Variant
    Dim rows As Integer, cols As Integer
    Dim i As Integer, j As Integer

    rows = InputBox("행 수를 입력하세요.")
    cols = InputBox("열 수를 입력하세요.")
    ReDim matrix(1 To rows, 1 To cols)

    For i = 1 To rows
        For j = 1 To cols
            matrix(i, j) = i * j
        Next j
    Next i

    MsgBox matrix(2, 3) ' 2행 3열 요소 출력
End Sub
SMALL

4. 동적 배열 사용 시 주의 사항

  • ReDim Preserve 문은 배열의 마지막 차원의 크기만 변경할 수 있습니다.
  • ReDim Preserve 문은 배열의 크기를 자주 변경해야 하는 경우 성능 저하를 일으킬 수 있습니다.
  • 동적 배열의 크기를 너무 크게 조정하면 메모리 부족 오류가 발생할 수 있습니다.

5. 마무리

VBA 동적 배열을 사용하면 데이터의 크기를 미리 알 수 없는 경우에도 유연하게 데이터를 처리할 수 있습니다. 다양한 동적 배열 활용 방법을 익히고 VBA 코딩 능력을 향상시키세요.

728x90
반응형
LIST