Excel VBA - 동적 배열
2025. 3. 17. 10:36ㆍMicrosoft Excel
728x90
반응형
SMALL
엑셀 함수 시리즈 #64: VBA 동적 배열 - 유연한 데이터 관리를 위한 핵심
VBA(Visual Basic for Applications) 동적 배열은 실행 중에 배열의 크기를 변경할 수 있어 유연한 데이터 관리를 가능하게 합니다. 동적 배열을 사용하면 데이터의 크기를 미리 알 수 없는 경우에도 효율적으로 데이터를 처리할 수 있습니다. 이번 글에서는 VBA 동적 배열의 기본 개념과 사용 방법, 활용 예시를 알아보겠습니다.
반응형
1. 동적 배열이란?
동적 배열은 실행 중에 배열의 크기를 변경할 수 있는 배열입니다. ReDim 문을 사용하여 배열의 크기를 변경하고 ReDim Preserve 문을 사용하여 배열의 기존 데이터를 유지하면서 크기를 변경할 수 있습니다.
2. 동적 배열 선언 방법
- 동적 배열 선언: 배열의 크기를 지정하지 않고 동적 배열을 선언합니다.
Dim 배열명() As 데이터형식
- 배열 크기 변경: ReDim 문을 사용하여 배열의 크기를 변경합니다.
ReDim 배열명(인덱스범위)
- 배열 크기 변경 및 데이터 유지: ReDim Preserve 문을 사용하여 배열의 크기를 변경하고 기존 데이터를 유지합니다.
ReDim Preserve 배열명(인덱스범위)
728x90
3. 동적 배열 활용 예시
- 사용자 입력에 따른 동적 배열 크기 조정: 사용자로부터 입력받은 개수만큼 배열의 크기를 조정합니다.
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씩 늘립니다.
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
- 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
'Microsoft Excel' 카테고리의 다른 글
엑셀 사용자 지정 서식에 대해 배워봅시다 (0) | 2025.03.22 |
---|---|
Excel VBA - 매크로 분석 및 활용 (0) | 2025.03.17 |
Excel VBA - API 활용 (0) | 2025.03.17 |
Excel VBA - 클래스 모듈 고급 (0) | 2025.03.17 |
Excel VBA - 사용자 정의 컨트롤 (0) | 2025.03.17 |