VBA で文字列配列を宣言して初期化する
プログラミング言語でのコード実行では、情報を保存する必要が避けられない場合があります。良い点は、VBA ではデータを保存するときにいくつかのオプションが許可されており、そのうちの 1つが配列です。
VBA では、配列は長さとデータ型の柔軟性に基づいて分類されます。
- 動的配列-長さとデータ型が可変の配列
- 静的配列-長さとデータ型が固定されている配列。
さらに、VBA のアレイは、その寸法に基づいて分類することもできます。
- 単一次元配列-1 行の配列のみを持つ配列。
- 多次元配列-複数の単一行配列を持つ配列。
動的文字列配列の宣言と初期化
以下のコードブロックは、文字列配列を作成および初期化する方法を示しています。
方法 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-LowerBound
と UpperBound
を宣言する:
最初と最後の要素を明示的に宣言して、静的文字列配列を宣言します。
構文:
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