본문 바로가기
IT 이모저모/VBA

VBA(엑셀 매크로) 배열, 2차원 배열 선언 및 활용

by 내일은맑음 2020. 7. 8.
반응형

VBA도 다른 언어와 마찬가지로 배열이 존재한다.

배열은 같은 종류의 데이터가 여러번 나올때 자주 사용된다.

예를 들면 아래와 같은 과일 명칭을 모아둔 배열이 있다면

 

사과, 바나나, 귤

 

사과에는 번호 1, 바나나에는 번호 2, 귤에는 번호3을 붙여서 1,2,3 숫자만 쓰더라도 쉽게

과일 이름을 불러올 수 있게 한 것이 배열이다.

 

간단히 배열의 구조를 알아보고

예제를 통해 배열을 다뤄보도록 하겠다.

 

배열의 구조

배열은 같은 데이터형을 가진 값들을 저장하는 공간으로, 인덱스(번호)로 각각의 공간에 접근 할 수 있다.

배열은 아래와 같은 구조로 되어있다.

Dim 배열변수명(배열 크기) As 데이터형
Dim 배열변수명(배열 시작 인덱스 To 배열종료 인덱스) As 데이터형

이차원 배열은 아래와 같다.

Dim 배열변수명(1차배열크기, 2차배열크기) As 데이터형
Dim 배열변수명(1차배열 시작 인덱스 To 1차배열종료 인덱스, 2차배열 시작 인덱스 To 2차배열종료 인덱스) As 데이터형

 

배열 예제

1차원 배열 크기의 예제는 아래와 같다.

Sub First_Array()
    Dim Array_1(3) As Integer
    '1차원 배열 예제
    Array_1(0) = 9
    Array_1(1) = 8
    Array_1(2) = 7
    
    MsgBox Array_1(0)
    MsgBox Array_1(1)
    MsgBox Array_1(2)
    
    Dim Array_2(4 To 6) As Integer
    Array_2(4) = 1
    Array_2(5) = 2
    Array_2(6) = 3
    
    MsgBox Array_2(4)
    MsgBox Array_2(5)
    MsgBox Array_2(6)
    
End Sub

출력 결과 - 9 8 7 1 2 3

 

2차원 배열의 예제는 아래와 같다. 

Sub Second_Array()
    Dim Array_1(2, 3) As Integer
    '1차원 배열 예제
    Array_1(0, 0) = 1
    Array_1(0, 1) = 2
    Array_1(0, 2) = 3
    Array_1(1, 0) = 4
    Array_1(1, 1) = 5
    Array_1(1, 2) = 6
    
    MsgBox Array_1(0, 0)
    MsgBox Array_1(0, 2)
    MsgBox Array_1(1, 0)
    MsgBox Array_1(1, 2)
    
    
    Dim Array_2(4 To 5, 1 To 2) As Integer
    Array_2(4, 1) = 10
    Array_2(4, 2) = 11
    Array_2(5, 1) = 12
    Array_2(5, 2) = 13
    
    MsgBox Array_2(4, 1)
    MsgBox Array_2(4, 2)
    MsgBox Array_2(5, 1)
    MsgBox Array_2(5, 2)
    
End Sub

출력 결과 - 1 3 4 6 10 11 12 13

반응형