Call ステートメント

Sub プロシージャ 、Function プロシージャ、または ダイナミック リンク ライブラリ (DLL) プロシージャにコントロールを転送します。

構文

[ Call ] name [ argumentlist ]


Call ステートメントの構文には、次の指定項目があります。

指定項目 説明
Call キーワードはオプションです。 指定した場合は、__ argumentlist をカッコに入れる必要があります。

例: Call MyProc(0)
name 必ず指定します。 呼び出すプロシージャの名前。
argumentlist 省略可能。 プロシージャに渡す変数配列、またはのコンマ区切りのリスト。 呼び出されたプロシージャで 引数がどのように処理されるかを示す目的で、__ argumentlist のコンポーネントとして ByVal または ByRef キーワードを含めることができます。

しかし、ByValByRef は、DLL プロシージャを呼び出すときのみ、Call と共に使用できます。 On the Macintosh, ByVal and ByRef can be used with Call when making a call to a Macintosh code resource.

注釈

プロシージャを呼び出すとき、Call キーワードを使用する必要はありません。 しかし、Call キーワードを使用して、引数を必要とするプロシージャを呼び出す場合、__ argumentlist をカッコで囲む必要があります。 Call キーワードを省略する場合、__ argumentlist のカッコを外す必要があります。 Call 構文を使用して、ネイティブまたはユーザー定義の関数を呼び出す場合、関数の戻り値は破棄されます。

プロシージャに配列全体を渡すには、空のカッコの後に配列名を使用します。

次の使用例は 、Call ステートメントを使用して、制御を Sub プロシージャ、組み込み関数、およびダイナミック リンク ライブラリ (DLL) プロシージャに転送する方法を示しています。 DLL は Macintosh では使用されません。

' Call a Sub procedure. 
Call PrintToDebugWindow("Hello World")     
' The above statement causes control to be passed to the following 
' Sub procedure. 
Sub PrintToDebugWindow(AnyString) 
    Debug.Print AnyString    ' Print to the Immediate window. 
End Sub 
 
' Call an intrinsic function. The return value of the function is 
' discarded. 
Call Shell(AppName, 1)    ' AppName contains the path of the  
        ' executable file. 
 
' Call a Microsoft Windows DLL procedure. The Declare statement must be  
' Private in a Class Module, but not in a standard Module. 
Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer) 
Sub CallMyDll() 
    Call MessageBeep(0)    ' Call Windows DLL procedure. 
    MessageBeep 0    ' Call again without Call keyword. 
End Sub

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。