配列を引数として他のプロシージャに渡すマクロ
タイトルのマクロは、以下です
Sub Main()
Dim myArray As Variant
' 配列に値を設定
myArray = Array("東北", "関東", "中部", "関西", "北陸")
' 配列をプロシージャに渡す
Call ProcessArray(myArray)
End Sub
Sub ProcessArray(ByRef arr As Variant)
Dim i As Integer
For i = LBound(arr) To UBound(arr)
Debug.Print arr(i)
Next i
End Sub
詳細説明
- 配列を受け取るプロシージャ(
ProcessArray
)Sub ProcessArray(ByRef arr As Variant)
は、配列を引数として受け取るサブルーチンです。For i = LBound(arr) To UBound(arr)
ループは、配列の最小インデックス (LBound
) から最大インデックス (UBound
) まで繰り返します。Debug.Print arr(i)
は、各配列要素の値をイミディエイトウィンドウに出力します。
- 配列を作成し、プロシージャに渡すサブルーチン(
Main
)Dim myArray As Variant
は、バリアント型配列を宣言します。バリアント型の変数を用意して、その値として配列を格納することができ、配列の中身をArray関数を使ってまとめて指定することが可能ですmyArray = Array("東北", "関東", "中部", "関西", "北陸")
Array 関数を使って配列に一度に値を格納します。Call ProcessArray(myArray)
は、作成した配列をProcessArray
プロシージャに渡します。
この例では、配列が ProcessArray
プロシージャに渡され、各要素の値がイミディエイトウィンドウに出力されます。VBAでは、配列を他のプロシージャに引数として渡すのは、このようにして行います。