VBA의 배열 목록

Iqra Hasnain 2024년2월15일
VBA의 배열 목록

VBA의 목록과 예제를 통해 프로그램에서 사용하는 방법을 소개합니다.

VBA의 배열 목록

메시지로 표시하거나 Excel 시트에 출력하기 위해 데이터를 데이터 구조에 저장해야 하는 상황이 많이 있습니다. 이를 위해 VBA는 데이터를 저장하는 데 사용할 수 있는 데이터 구조인 ArrayList를 제공합니다.

아시다시피 배열의 길이는 고정되어 있지만 ArrayList를 사용하여 다양한 값을 만들면 고정된 크기에 제한을 받지 않습니다.

ArrayList를 사용하려면 외부 라이브러리 또는 개체이므로 참조를 설정해야 합니다. VBA에는 두 가지 배열 유형이 있습니다.

첫 번째는 시간 선언 시 하한과 상한을 알아야 하는 정적 배열입니다. 반면에 두 번째는 선언 시 하한 또는 상한이 필요하지 않은 동적 배열입니다.

그래도 VBA에서 redim 문을 사용하여 동적 배열을 선언한 후 길이를 제공해야 합니다. 그러나 ArrayList를 사용하면 상한 또는 하한을 선언할 필요가 없습니다.

예제에서 ArrayList를 사용하기 전에 먼저 참조를 설정해 보겠습니다. 참조를 설정하려면 다음 단계를 따라야 합니다.

  1. 먼저 개발자 탭으로 이동하여 아래 이미지와 같이 Visual Basic을 클릭해야 합니다.

    VBA 1단계에서 ArrayList에 대한 참조 설정

  2. 아래 그림과 같이 도구 메뉴로 이동하여 참조를 클릭합니다.

    VBA 2단계에서 ArrayList에 대한 참조 설정

  3. 이제 아래 이미지와 같이 mscorlib.dll 참조를 찾아 선택하고 확인을 클릭합니다.

    VBA 3단계에서 ArrayList에 대한 참조 설정

ArrayList의 참조를 설정했으면 과일 ArrayList를 만드는 예제를 살펴보겠습니다. 먼저 아래와 같이 sub를 만듭니다.

# VBA
Sub testExample()

End Sub

이제 함수 내에서 아래와 같이 fruitsArrayList로 정의하고 변수를 새 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

이제 실행하고 작동 방식을 확인하겠습니다.

VBA에서 ArrayList를 사용한 결과

위의 예에서 알 수 있듯이 ArrayList의 값을 사용하고 출력하는 것은 매우 쉽고 간단한 Add 방법을 사용하여 ArrayList에 많은 값을 쉽게 저장할 수 있습니다.