【用語集に記載の内容について】

用語集に記載されているプロパティやメソッド、関数の引数は、VBAエキスパート試験の試験範囲に対応した内容を記載しており、すべての引数を網羅しておりません。
記載していない引数等については、ヘルプ機能やオブジェクトブラウザーを参照ください。

【コードをコピーして実行する場合の注意】

文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。

Callステートメント

名称Callステートメント
説明
他のプロシージャ(SubやFunction)を呼び出します。

Callステートメントは省略することができますが、呼び出すのがSubプロシージャの場合は、他のプロシージャを呼び出していることが明示され、コードの可読性が高まるため、省略しないことが推奨されます。

Funcitonプロシージャを呼び出す場合は、戻り値があるため、Callステートメントを省略することが一般的です。
書式
【引数がないプロシージャを呼び出す場合】
Call プロシージャ名

プロシージャ名:呼び出すSubプロシージャまたはFunctionプロシージャの名前

【引数があるプロシージャを呼び出す場合】
※この書式はスタンダードの学習範囲です。

Call プロシージャ名(引数1, [引数2], ...)

プロシージャ名:呼び出すSubプロシージャまたはFunctionプロシージャの名前
引数:呼び出すプロシージャに渡す値
コード例①
【Macro1から引数がないSubプロシージャを呼び出す場合】
Sub Macro1()
    Call Macro2
    MsgBox "VBA"
End Sub

Sub Macro2()
    MsgBox "Excel"
End Sub

Macro1の「Call Macro2」は、Callステートメントを使用してMacro2を呼び出します。

呼び出されたMacro2の「MsgBox "Excel"」で、MsgBox関数を使用して、メッセージボックスに「Excel」を表示します。

Macro2の処理が終了し、Macro1の次の処理である「MsgBox "VBA"」が実行され、MsgBox関数を使用して、メッセージボックスに「VBA」を表示します。

結果として、Macro1を実行すると、以下のメッセージボックスが順に表示されます。
「Excel」
「VBA」
コード例②
【Macro3から引数があるSubプロシージャを呼び出す場合】
※このコード例はスタンダードの学習範囲です。
Sub Macro3()
    Call Macro4("Excel")
    MsgBox "VBA"
End Sub

Sub Macro4(s As String)
    MsgBox s
End Sub

Macro3の「Call Macro4("Excel")」は、Callステートメントを使用して、Macro4を呼び出します。

その際、Macro4の引数sに渡す値として「Excel」を渡しています。

呼び出されたMacro4が実行され、引数sで「Excel」を受け取ります。

「MsgBox s」で、MsgBox関数を使用して、引数sの値「Excel」をメッセージボックスに表示します。

Macro4の処理が終了し、Macro3の次の処理である「MsgBox "VBA"」が実行され、MsgBox関数を使用して、メッセージボックスに「VBA」を表示します。

結果として、Macro3を実行すると、以下のメッセージボックスが順に表示されます。
「Excel」
「VBA」
カテゴリベーシック・スタンダード