機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > VBAのステートメント

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



このエントリーをはてなブックマークに追加