□ 배열(Array)
여러 개의 값을 하나의 변수로 저장할 수 있는 데이터 구조입니다. 배열(Array)은 동일한 데이터 형식의 값들을 모아서 처리하는 데 유용하며, 반복적인 작업을 간소화할 수 있습니다. 배열(Array)은 고정 크기 배열과 동적 배열로 나뉘며, 각기 다른 용도로 사용됩니다. 배열(Array)은 순서가 있습니다. 배열은 인덱스(index)를 사용하여 각 요소를 고유하게 식별하며,
배열에 있는 값들은 인덱스의 순서대로 저장되고 접근됩니다.
1. 배열 선언
1) 고정 크기 배열 : 고정된 크기를 가진 배열을 선언할 때는 다음과 같은 구문을 사용합니다.
Dim 배열이름(최소인덱스 To 최대인덱스) As 데이터형
예제:
Dim numbers(1 To 5) As Integer '// 1부터 5까지의 정수를 저장할 수 있는 배열
Dim names(0 To 9) As String '// 0부터 9까지의 문자열을 저장할 수 있는 배열
- 인덱스는 기본적으로 0부터 시작하며, 범위를 명시하지 않으면 Dim arr(4)는 0부터 4까지 5개의 요소를 갖습니다.
2) 동적 배열 :
크기를 나중에 정할 수 있는 배열을 선언할 때는 Dim으로 선언한 ,후 ReDim을 사용해 크기를 설정합니다.
Dim 배열이름() As 데이터형
ReDim 배열이름(최소인덱스 To 최대인덱스)
예제:
Dim scores() As Double
ReDim scores(1 To 10) '// 배열 크기 설정
- ReDim을 사용하면 배열 크기를 변경할 수 있지만, 기존 값은 초기화됩니다.
값을 유지하려면 Preserve 키워드를 사용합니다.
ReDim Preserve scores(1 To 20) '// 배열 크기 확장, 기존 값 유지
2. 배열 요소 접근 및 수정
배열 요소에 접근(저장)하려면 배열 이름과 해당 요소의 인덱스를 사용합니다.
numbers(1) = 10 '// 첫 번째 요소에 값 10 저장
names(0) = "Alice" '// 첫 번째 요소에 "Alice" 저장
요소 값을 읽을 때도 같은 방식으로 접근합니다.
Debug.Print numbers(1) ' 10 출력
Debug.Print names(0) ' Alice 출력
3. 배열의 크기 및 정보 확인
- LBound: 배열의 최소 인덱스를 반환합니다.
- UBound: 배열의 최대 인덱스를 반환합니다.
예제:
Dim arr(1 To 5) As Integer
Debug.Print LBound(arr) ' 1 출력
Debug.Print UBound(arr) ' 5 출력
4. 다차원 배열
VBA는 다차원 배열도 지원합니다. 2차원 이상의 배열을 선언할 수 있습니다.
Dim matrix(1 To 3, 1 To 3) As Integer ' 3x3 정수 배열
matrix(1, 1) = 5
matrix(2, 2) = 10
5. 배열과 반복문
배열을 순회하려면 For 루프나 For Each 루프를 사용할 수 있습니다.
For 루프 예제:
Dim i As Integer
Dim numbers(1 To 5) As Integer
For i = 1 To 5
numbers(i) = i * 10
Next i
For Each 루프는 배열 요소를 직접 처리할 때 유용합니다. (고정 배열에만 사용 가능).
Dim name As String
Dim names(1 To 3) As String
names(1) = "Alice"
names(2) = "Bob"
names(3) = "Charlie"
For Each name In names
Debug.Print name
Next name
6. VBA 배열의 주요 특징
- 배열 크기를 미리 알 수 없는 경우 동적 배열을 사용합니다.
- 배열의 범위는 Option Base에 따라 기본값이 0 또는 1일 수 있습니다. 명시적으로 설정하려면 Option Base 1을 파일의 최상단에 추가합니다.
- Preserve 키워드는 동적 배열의 기존 값을 유지하며 크기 조정을 할 때 유용합니다.
- 배열의 크기를 초과하여 값을 저장하려 하면 런타임 오류가 발생합니다.
배열은 VBA에서 반복 작업, 데이터 저장 및 조작을 효율적으로 처리하는 중요한 도구입니다. 작업의 복잡성에 따라 적절한 배열 유형과 크기 관리를 선택하면 코드의 가독성과 효율성을 크게 향상시킬 수 있습니다.
▷참고 사이트. . .
□ 3차원 배열(Array)
'VBA VB.Net Code' 카테고리의 다른 글
DataGridView (1) | 2024.12.15 |
---|---|
Combox의 요소를 선택 하여 라벨에 표시 하기 (0) | 2024.12.14 |
폴더 만들기 (0) | 2024.11.25 |
Type 문을 사용하여 사용자 정의 변수를 정의 (2) | 2024.11.18 |
엑셀 VBA의 Collection (0) | 2024.11.15 |