VBA の配列リスト

Iqra Hasnain 2024年2月15日
VBA の配列リスト

VBA でのリストと、サンプルを使用してプログラムでそれらを使用する方法を紹介します。

VBA の配列リスト

メッセージに表示したり、Excel シートに出力したりするために、データをデータ構造に格納しなければならない状況が数多くあります。 この目的のために、VBA には、データの格納に使用できるデータ構造である ArrayList が用意されています。

ご存知のように、配列は固定長ですが、ArrayList を使用してさまざまな値を作成する場合、固定サイズに制限されません。

ArrayList を使用するには、外部ライブラリまたはオブジェクトであるため、参照を設定する必要があります。 VBA には 2つの配列タイプがあります。

最初のものは、時間宣言で下限と上限を知る必要がある静的配列です。 一方、2つ目は、宣言時に下限または上限を必要としない動的配列です。

それでも、VBA で redim ステートメントを使用して動的配列を宣言した後に長さを指定する必要があります。 しかし、ArrayList を使用する場合、上限または下限を宣言する必要はありません。

例で ArrayList を使用する前に、まず参照を設定しましょう。 参照を設定するには、次の手順に従う必要があります。

  1. まず、下の画像に示すように、[開発者] タブに移動し、[Visual Basic] をクリックする必要があります。

    VBA ステップ 1 で ArrayList の参照を設定する

  2. 下の図に示すように、[ツール] メニューに移動し、[参照] をクリックします。

    VBA ステップ 2 で ArrayList の参照を設定する

  3. 次に、下の図に示すように、mscorlib.dll リファレンスを探して選択し、[OK] をクリックします。

    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 を使用して項目を 1つずつ 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 に多くの値を簡単に格納できます。