共用方式為


Call 陳述式

將控制權轉移至 程序函式 程序或 動態連結函式庫 (DLL) 程序。

語法

[ 通話 ] 姓名 [ 論點列表 ]

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

部分 描述
Call 隨意的; 關鍵字。 若有指定,必須在括號內標註 argumentlist

例如:Call MyProc(0)
name 此為必要動作。 要打電話的程序名稱。
論點列表 選用。 以逗號分隔的 變數陣列表達 式清單,供傳遞給程序。 參數清單的元件可能包含關鍵字 ByValByRef,以描述被呼叫程序如何處理參數

然而, ByValByRef 只能在呼叫 DLL 程序時與 Call 一起使用。 在 Macintosh 上, ByValByRef 可搭配 Call 搭配使用,以呼叫 Macintosh 程式碼資源。

註解

呼叫程序時,您不一定要使用 Call 關鍵字。 然而,如果你使用 Call 關鍵字呼叫需要參數的程序, 則 argumentlist 必須以括號包括。 如果你省略 了 Call 關鍵字,也必須省略 argumentlist 周圍的括號。 如果你使用 Call 語法呼叫任何內在或使用者定義的函式,該函式的回傳值會被丟棄。

在 Visual Basic .NET 中,大多數情況下你可以省略 Call 關鍵字,保留括號;但在 VBA 中,你必須同時使用 或不 使用 Call 和括號。

要將整個陣列傳給程序,請使用陣列名稱後面加上空括號。

範例

此範例說明 Call 陳述如何將控制轉移至 程序、內在函式及動態連結函式庫 (DLL) 程序。 Macintosh 不使用 DLL。

' 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 支援與意見反應