Share via


Call 陳述式

將控件傳輸至 程式 式程式或 動態連結庫, (DLL) 程式。

語法

[ 呼叫 ] name [ argumentlist ]

Call 語句語法包含下列部分:

部分 描述
Call 選; 關鍵詞。 如果指定,您必須以括弧括住自變數 清單

例如:Call MyProc(0)
name 此為必要動作。 要呼叫的程式名稱。
argumentlist 選用。 要傳遞至程式的 變數陣列表達 式逗號分隔清單。 argumentlist 的元件可能包含關鍵詞 ByValByRef,以描述呼叫的程式如何處理變數。

不過, ByValByRef 只能在呼叫 DLL 程式時與 Call 搭配使用。 在 Macintosh 上,呼叫 Macintosh 程式代碼資源時, ByValByRef 可以與 Call 搭配使用。

註解

呼叫程式時,您不需要使用 Call 關鍵詞。 不過,如果您使用 Call 關鍵詞來呼叫需要自變數的程式,則自變數 清單 必須以括弧括住。 如果您省略 Call 關鍵詞,則也必須省略自變數 清單周圍的括弧。 如果您使用 Call 語法來呼叫任何內部函數或使用者定義函數,則會捨棄函式的傳回值。

在 Visual Basic .NET 中,在大部分情況下,您只能省略保留括弧的 Call 關鍵詞,但在 VBA 中,您必須 同時使用或不 使用 呼叫 和括弧。

若要將整個數位傳遞至程式,請使用數位名稱後面接著空括弧。

範例

此範例說明如何使用 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 支援與意見反應