VBA의 배열 목록
VBA의 목록과 예제를 통해 프로그램에서 사용하는 방법을 소개합니다.
VBA의 배열 목록
메시지로 표시하거나 Excel 시트에 출력하기 위해 데이터를 데이터 구조에 저장해야 하는 상황이 많이 있습니다. 이를 위해 VBA는 데이터를 저장하는 데 사용할 수 있는 데이터 구조인 ArrayList
를 제공합니다.
아시다시피 배열의 길이는 고정되어 있지만 ArrayList
를 사용하여 다양한 값을 만들면 고정된 크기에 제한을 받지 않습니다.
ArrayList
를 사용하려면 외부 라이브러리 또는 개체이므로 참조를 설정해야 합니다. VBA에는 두 가지 배열 유형이 있습니다.
첫 번째는 시간 선언 시 하한과 상한을 알아야 하는 정적 배열입니다. 반면에 두 번째는 선언 시 하한 또는 상한이 필요하지 않은 동적 배열입니다.
그래도 VBA에서 redim
문을 사용하여 동적 배열을 선언한 후 길이를 제공해야 합니다. 그러나 ArrayList
를 사용하면 상한 또는 하한을 선언할 필요가 없습니다.
예제에서 ArrayList
를 사용하기 전에 먼저 참조를 설정해 보겠습니다. 참조를 설정하려면 다음 단계를 따라야 합니다.
-
먼저 개발자 탭으로 이동하여 아래 이미지와 같이 Visual Basic을 클릭해야 합니다.
-
아래 그림과 같이 도구 메뉴로 이동하여 참조를 클릭합니다.
-
이제 아래 이미지와 같이
mscorlib.dll
참조를 찾아 선택하고 확인을 클릭합니다.
ArrayList
의 참조를 설정했으면 과일 ArrayList
를 만드는 예제를 살펴보겠습니다. 먼저 아래와 같이 sub
를 만듭니다.
# VBA
Sub testExample()
End Sub
이제 함수 내에서 아래와 같이 fruits
를 ArrayList
로 정의하고 변수를 새 ArrayList
로 설정합니다.
# VBA
Sub testExample()
Dim fruits As ArrayList
Set fruits = New ArrayList
End Sub
이제 Add
메서드를 사용하여 항목을 ArrayList
에 하나씩 추가하고 원하는 과일 이름 문자열을 직접 할당합니다.
# VBA
Sub testExample()
Dim fruits As ArrayList
Set fruits = New ArrayList
fruits.Add "Mango"
fruits.Add "Apple"
fruits.Add "Banana"
End Sub
이제 이러한 과일 중 하나를 호출하려는 경우 추가된 참조 순서를 사용하여 빠르게 호출할 수 있습니다. 예를 들어 ArrayList
에서 첫 번째 과일을 얻으려면 해당 배열의 인덱스를 사용하여 배열에서 객체를 호출하는 것과 같은 방식으로 빠르게 호출할 수 있습니다.
아래와 같은 순서로 메시지 상자에 fruits
를 표시해 봅시다.
# VBA
Sub testExample()
Dim fruits As ArrayList
Set fruits = New ArrayList
fruits.Add "Mango"
fruits.Add "Apple"
fruits.Add "Banana"
MsgBox ("First Fruit is: " & fruits(0) & vbNewLine & "Second Fruit is: " & fruits(1) & vbNewLine & "Third Fruit is: " & fruits(2))
End Sub
이제 실행하고 작동 방식을 확인하겠습니다.
위의 예에서 알 수 있듯이 ArrayList
의 값을 사용하고 출력하는 것은 매우 쉽고 간단한 Add
방법을 사용하여 ArrayList
에 많은 값을 쉽게 저장할 수 있습니다.