配列の使用
配列を宣言して、同じデータ型の値のセットを操作できます。 配列は、値を格納するための多くのコンパートメントを持つ 1 つの変数ですが、通常の変数はストレージ コンパートメントが 1 つだけで、1 つの値しか格納できません。 配列が保持するすべての値をまとめて参照することも、個別の要素を参照することもできます。
たとえば、年の各日の日単位の経費を格納するには、365 個の変数を宣言するのではなく、365 個の要素を持つ 1 つの配列変数を宣言できます。 配列内の各要素には、1 つの値が含まれています。 次のステートメントは、配列変数を 365 個の要素で宣言します。 既定では、配列のインデックスは 0 から始まるので、配列の上限は 365 ではなく 364 です。
Dim curExpense(364) As Currency
個別の要素の値を設定するには、要素のインデックスを指定します。 次の例では、配列の各要素に初期値 20 を割り当てています。
Sub FillArray()
Dim curExpense(364) As Currency
Dim intI As Integer
For intI = 0 to 364
curExpense(intI) = 20
Next
End Sub
下限を変更する
モジュールの上部にある Option Base ステートメントを使用して、最初の要素の既定のインデックスを 0 から 1 に変更します。 次の例では、 Option Base ステートメントによって最初の要素のインデックスが変更され、 Dim ステートメントによって配列変数が 365 個の要素で宣言されています。
Option Base 1
Dim curExpense(365) As Currency
次の例で示すように、To 句を使用して配列の下限を明示的に設定することもできます。
Dim curExpense(1 To 365) As Currency
Dim strWeekday(7 To 13) As String
配列にバリアント型 (Variant) の値を格納する
Variant 値の配列を作成するには、2 つの方法があります。 1 つは、次の例で示すように、Variant データ型の配列を宣言する方法です。
Dim varData(3) As Variant
varData(0) = "Claudia Bendel"
varData(1) = "4242 Maple Blvd"
varData(2) = 38
varData(3) = Format("06-09-1952", "General Date")
もう 1 つは、次の例で示すように、Array 関数によって返される配列を Variant 変数に代入する方法です。
Dim varData As Variant
varData = Array("Ron Bendel", "4242 Maple Blvd", 38, _
Format("06-09-1952", "General Date"))
どちらの方法で配列を作成しても、Variant 値の配列の要素はインデックスで識別します。 たとえば、前の例のどちらにも、次のステートメントを追加できます。
MsgBox "Data for " & varData(0) & " has been recorded."
多次元配列の使用
Visual Basic では、最大で 60 次元の配列を宣言できます。 たとえば、次の例では 5 × 10 の 2 次元配列を宣言しています。
Dim sngMulti(1 To 5, 1 To 10) As Single
配列を行列と考えると、最初の引数は行を表し、2 番目の引数は列を表します。
入れ子になった For..を使用します。 多次元配列を処理する次のステートメント。 次のプロシージャでは、2 次元の配列に Single 値を設定しています。
Sub FillArrayMulti()
Dim intI As Integer, intJ As Integer
Dim sngMulti(1 To 5, 1 To 10) As Single
' Fill array with values.
For intI = 1 To 5
For intJ = 1 To 10
sngMulti(intI, intJ) = intI * intJ
Debug.Print sngMulti(intI, intJ)
Next intJ
Next intI
End Sub
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。