配列を引数として他のプロシージャに渡すマクロ

タイトルのマクロは、以下です

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

詳細説明

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

この例では、配列が ProcessArray プロシージャに渡され、各要素の値がイミディエイトウィンドウに出力されます。VBAでは、配列を他のプロシージャに引数として渡すのは、このようにして行います。

Follow me!