VBAの変数配列

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 7月 6, 2022

[テーブル 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キーを押してコードを実行すると、イミディエイトウィンドウに次のような結果が表示されます。

Declaring a Static Array Variable 静的配列

動的配列変数

動的配列変数のサイズは実行時に変化し、言い換えれば実行時のみに設定されます。静的配列変数のように最初に配列のアイテム数や要素数を宣言するのではなく、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 キーワードで指定した配列のすべての項目が表示されたメッセージボックスが表示され、その後、配列内の項目数が更新されたメッセージボックスが表示されます。 その結果、次のようになります。

Using Redim to resize the Array 動的配列

Using Redim to resize the Array 動的配列

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples