Callステートメント
構文
[Call] name [argumentlist]
引数nameには、呼び出すプロシージャ名を指定します。
引数argumentlistは省略可能です。呼び出すプロシージャに渡す引数を列挙します。
解説
他のSubプロシージャやFunctionプロシージャなどを呼び出して制御を渡します。Callステートメントを省略することもできます。たとえば、Call myProcudeとmyProcudeは同じです。
呼び出すプロシージャに引数を渡すとき、Callステートメントを省略しない場合は、引数を括弧()で囲みます。Callステートメントを省略する場合は、引数を括弧()で囲みません。
Callステートメントで値を返す関数を呼び出しても、返り値を取得することはできません。返り値を取得する場合は、Callステートメントを省略します。
Callステートメントの有無に関わらず、関数の戻り値を利用する場合は、引数を括弧で囲まなければなりません。
myFunctionが引数を受け取り値を返すユーザー定義関数だった場合の書式は、次のとおりです。
書式 | 結果 |
---|---|
myFunction 123 | 正常 |
myFunction(123) | エラー |
Call myFunction 123 | エラー |
Call myFunction(123) | 正常 |
rc = myFunction 123 | エラー |
rc = myFunction(123) | 正常 |
rc = Call myFunction 123 | エラー |
rc = Call myFunction(123) | エラー |
サンプル
次の例は、Callステートメントを使ってmyProcudeを呼び出します。次に、値を返すmyFunctionに引数を与えて呼び出します。
Sub Sample() Dim rc As Variant Call myProcude 'myProcudeを表示します MsgBox myFunction(123) '246を表示します End Sub Sub myProcude() MsgBox "myProcude" End Sub Function myFunction(arg1 As Integer) myFunction = arg1 * 2 End Function