VBAの変数配列
In this Article
[テーブル id=21 /]
VBAのデータ型 – 変数と定数入門チュートリアルで、変数と定数について説明しました。このチュートリアルでは、配列変数とは何か、そしてそれらをどのようにコードで使用することができるかを見ていきたいと思います。
VBAの配列変数とは何ですか?
VBAの配列変数は、要素のリストまたはグループを格納します。VBAの配列変数は、同じ名前で保存され、同じデータ型を持つ変数のグループと考えることもできます。配列の要素はすべて同じ型でなければなりません。例としては、果物のリストが挙げられます。配列には、テキストや数値を格納することができます。配列の要素を参照するには、そのインデックス番号を使用します。配列変数は、Dim、Static、Public、または Private キーワードを使用して宣言できます。
静的配列変数
Static配列変数は、固定サイズまたはリスト内の項目数が設定されています。Static配列変数は、次のように宣言します。
Sub DeclaringAStaticArrayVariable()
Dim Shoes(1 To 3) As String
Shoes(1) = "ブーツ"
Shoes(2) = "サンダル"
Shoes(3) = "スニーカー"
End Sub
以下のコードのように、インデックス番号を参照することで、配列の中の特定の要素を表示することができます。
Sub DeclaringAStaticArrayVariable()
Dim Shoes(1 To 3) As String
Shoes(1) = "ブーツ"
Shoes(2) = "サンダル"
Shoes(3) = "スニーカー"
Debug.Print Shoes(1)
End Sub
F5キーを押してコードを実行すると、イミディエイトウィンドウに次のような結果が表示されます。
動的配列変数
動的配列変数のサイズは実行時に変化し、言い換えれば実行時のみに設定されます。静的配列変数のように最初に配列のアイテム数や要素数を宣言するのではなく、ReDimキーワードを使って動的配列が持つサイズやアイテム数を指定します。その後もReDim キーワードを使用して配列のサイズを変更することができます。
Sub DeclaringADynamicArrayVariable()
Dim differentvegetables() As String
ReDim differentvegetables(3)
differentvegetables(1) = "ニンジン"
differentvegetables(2) = "カボチャ"
differentvegetables(3) = "バターナッツ"
MsgBox Join(differentvegetables, vbCr)
ReDim differentvegetables(4)
differentvegetables(1) = "ニンジン"
differentvegetables(2) = "カボチャ"
differentvegetables(3) = "バターナッツ"
differentvegetables(4) = "キャベツ"
MsgBox Join(differentvegetables, vbCr)
End Sub
このコードを実行すると、ReDim キーワードで指定した配列のすべての項目が表示されたメッセージボックスが表示され、その後、配列内の項目数が更新されたメッセージボックスが表示されます。 その結果、次のようになります。