VBA で文字列配列を宣言して初期化する

Glen Alfaro 2023年1月30日
  1. 動的文字列配列の宣言と初期化
  2. 静的文字列配列の宣言と初期化
VBA で文字列配列を宣言して初期化する

プログラミング言語でのコード実行では、情報を保存する必要が避けられない場合があります。良い点は、VBA ではデータを保存するときにいくつかのオプションが許可されており、そのうちの 1つが配列です。

VBA では、配列は長さとデータ型の柔軟性に基づいて分類されます。

  1. 動的配列-長さとデータ型が可変の配列
  2. 静的配列-長さとデータ型が固定されている配列。

さらに、VBA のアレイは、その寸法に基づいて分類することもできます。

  1. 単一次元配列-1 行の配列のみを持つ配列。
  2. 多次元配列-複数の単一行配列を持つ配列。

動的文字列配列の宣言と初期化

以下のコードブロックは、文字列配列を作成および初期化する方法を示しています。

方法 1-Variant データ型として宣言する

バリアントデータ型で変数を作成して、動的配列を宣言します。次に、配列はコレクション(Array())によって初期化されます。

Sub DynamicArrayDemo()

Dim stringArray As Variant

stringArray = Array("Lion", "Tiger", "Cheetah", "Monkey", "Elephant", "Zebra")

Debug.Print stringArray(3)

End Sub

DynamicArrayDemo 出力:

Monkey

方法 2-文字列として宣言してから、Split() 関数を使用します

境界を明示的に宣言せずに、stringArray という名前の文字列配列を宣言します。

Sub DynamicArrayDemo()

Dim stringArray() As String
Dim str As String

str = "Lion,Tiger,Cheetah,Monkey,Elephant,Zebra"

stringArray = Split("Lion,Tiger,Cheetah,Monkey,Elephant,Zebra", ",")

Debug.Print stringArray(2)
End Sub

DynamicArrayDemo 出力:

Cheetah

静的文字列配列の宣言と初期化

以下のコードブロックは、静的文字列配列を宣言および初期化するためのさまざまなメソッドを示しています。

方法 1-LowerBoundUpperBound を宣言する:

最初と最後の要素を明示的に宣言して、静的文字列配列を宣言します。

構文:

Dim stringArray([LowerBound] To [UpperBound]) As String

パラメーター:

[LowerBound] 配列の最初の要素が参照されるキー整数。
[UpperBound] 配列の最後の要素が参照されるキー整数。

以下の例では、要素 0 から 5 までの 6つの要素を持つ stringArray という名前の文字列配列を宣言します。

Sub StaticArrayDemo()

Dim stringArray(0 To 5) As String

stringArray(0) = "Lion"
stringArray(1) = "Tiger"
stringArray(2) = "Cheetah"
stringArray(3) = "Monkey"
stringArray(4) = "Elephant"
stringArray(5) = "Zebra"

Debug.Print stringArray(4)

End Sub

StaticArrayDemo 出力:

Elephant

方法 2- 下限を明示的に変更する

一般的な下限値で文字列配列を宣言します。

Option Base 1

Sub StaticArrayDemo()
Dim stringArray(6) As String

stringArray(1) = "Lion"
stringArray(2) = "Tiger"
stringArray(3) = "Cheetah"
stringArray(4) = "Monkey"
stringArray(5) = "Elephant"
stringArray(6) = "Zebra"

Debug.Print stringArray(1)

End Sub

StaticArrayDemo 出力:

Lion

方法 3-多次元配列を使用して宣言および初期化する

VBA では、最大 60 次元の配列を宣言できます。

構文:

Dim stingArray( [LowerBound1] to [UpperBound1],[LowerBound2] to [UpperBound2], . . .  ) as String

パラメーター:

[LowerBound1] キー整数は、最初の配列次元で参照される最初の配列要素です。
[UpperBound1] キー整数は、最初の配列次元で参照される最後の配列要素です。
[LowerBound2] キー整数は、2 番目の配列次元で参照される最初の配列要素です。
[UpperBound2] キー整数は、2 番目の配列次元で参照される最後の配列要素です。

以下の例では、多次元配列が宣言されており、最初の次元は 1 から 5 です。次に、もう 1つは 1 から 5 です。

Sub MultiStaticArrayDemo()

Dim stringArray(1 To 5, 1 To 5) As String
Dim i, j As Integer

For i = 1 To 5
    For j = 1 To 5
        stringArray(i, j) = "The value of (" & i & "," & j & ") is " & i * j
        Debug.Print stringArray(i, j)
    Next j
Next i

End Sub

MultiStaticArrayDemo 出力:

The value of (1,1) is 1
The value of (1,2) is 2
The value of (1,3) is 3
The value of (1,4) is 4
The value of (1,5) is 5
The value of (2,1) is 2
The value of (2,2) is 4
The value of (2,3) is 6
The value of (2,4) is 8
The value of (2,5) is 10
The value of (3,1) is 3
The value of (3,2) is 6
The value of (3,3) is 9
The value of (3,4) is 12
The value of (3,5) is 15
The value of (4,1) is 4
The value of (4,2) is 8
The value of (4,3) is 12
The value of (4,4) is 16
The value of (4,5) is 20
The value of (5,1) is 5
The value of (5,2) is 10
The value of (5,3) is 15
The value of (5,4) is 20
The value of (5,5) is 25

関連記事 - VBA Array