VBA の配列リスト
VBA でのリストと、サンプルを使用してプログラムでそれらを使用する方法を紹介します。
VBA の配列リスト
メッセージに表示したり、Excel シートに出力したりするために、データをデータ構造に格納しなければならない状況が数多くあります。 この目的のために、VBA には、データの格納に使用できるデータ構造である ArrayList
が用意されています。
ご存知のように、配列は固定長ですが、ArrayList
を使用してさまざまな値を作成する場合、固定サイズに制限されません。
ArrayList
を使用するには、外部ライブラリまたはオブジェクトであるため、参照を設定する必要があります。 VBA には 2つの配列タイプがあります。
最初のものは、時間宣言で下限と上限を知る必要がある静的配列です。 一方、2つ目は、宣言時に下限または上限を必要としない動的配列です。
それでも、VBA で redim
ステートメントを使用して動的配列を宣言した後に長さを指定する必要があります。 しかし、ArrayList
を使用する場合、上限または下限を宣言する必要はありません。
例で ArrayList
を使用する前に、まず参照を設定しましょう。 参照を設定するには、次の手順に従う必要があります。
-
まず、下の画像に示すように、[開発者] タブに移動し、[Visual Basic] をクリックする必要があります。
-
下の図に示すように、[ツール] メニューに移動し、[参照] をクリックします。
-
次に、下の図に示すように、
mscorlib.dll
リファレンスを探して選択し、[OK] をクリックします。
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
を使用して項目を 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
それでは、実行して動作を確認しましょう。
上記の例からわかるように、ArrayList
から値を使用して出力するのは非常に簡単で、Add
の単純なメソッドを使用して ArrayList
に多くの値を簡単に格納できます。