Call


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