본문 바로가기
  • Welcome!
VBA VB.Net Code

엑셀 VBA의 배열(array) 개념

by ToolBOX01 2024. 12. 2.
반응형

□ 배열(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 배열의 주요 특징

  1. 배열 크기를 미리 알 수 없는 경우 동적 배열을 사용합니다.
  2. 배열의 범위는 Option Base에 따라 기본값이 0 또는 1일 수 있습니다. 명시적으로 설정하려면 Option Base 1을 파일의 최상단에 추가합니다.
  3. Preserve 키워드는 동적 배열의 기존 값을 유지하며 크기 조정을 할 때 유용합니다.
  4. 배열의 크기를 초과하여 값을 저장하려 하면 런타임 오류가 발생합니다.

배열은 VBA에서 반복 작업, 데이터 저장 및 조작을 효율적으로 처리하는 중요한 도구입니다. 작업의 복잡성에 따라 적절한 배열 유형과 크기 관리를 선택하면 코드의 가독성과 효율성을 크게 향상시킬 수 있습니다.

▷참고 사이트. . . 

 

[VBA] 배열 완벽 가이드

이 포스트는 Excel Macro Mastery 사이트의 'Excel VBA Array – The Complete Guide(by Paul Kelly)'의 내용을 다시 정리한 것입니다. 이번 포스트에서는 엑셀 VBA의 배열(array)에 대해 다룹니다. 들어가며 본 포스트

kukuta.tistory.com

 

□ 3차원 배열(Array)

 

 

[엑셀 VBA] 배열 선언하기 :D (2차원배열,3차원배열,동적배열)

안녕하세요.  오늘은 엑셀 VBA에서 배열에 대한 내용을 알아볼까 합니다.     먼저 배열...

blog.naver.com

 


'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