HOME > 即効テクニック > Excel VBA > その他関連のテクニック > 他のプロシージャに配列を引数として渡す

他のプロシージャに配列を引数として渡す|Excel VBA

その他関連のテクニック

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

(Excel 97/2000/2002/2003/2007/2010)

配列を他のプロシージャで使用するには、Public変数やモジュールレベル変数を利用するほか、引数として渡す方法があります。
配列を引数として渡すには、呼び出し元のプロシージャ、受け手側のプロシージャはそれぞれ次のような構文で記述します。

【呼び出し元】    Call プロシージャ名( 配列名 )

【受け手側】      Sub プロシージャ名( 配列名() As データ型)
         Function プロシージャ名( 配列名() As データ型) As データ型

次のサンプルでは、PassArgプロシージャの中から配列を引数としてRecArgプロシージャを呼び出します。
呼び出されたRecArgプロシージャでは、受け取った配列の値をMsgBoxに表示します。

●渡す側(呼び出し元)●

Sub PassArg()
    Dim i As Long
    Dim myArray(3) As String
    
    For i = LBound(myArray) To UBound(myArray)
        myArray(i) = "値" & i
    Next i
    
    Call RecArg(myArray)
End Sub

●受け手側●

Sub RecArg(myArg() As String)
    Dim j As Long
    Dim Msg As String
    
    For j = LBound(myArg) To UBound(myArg)
        Msg = Msg & myArg(j) & vbCrLf
    Next j
    
    MsgBox Msg
End Sub