將控制權轉移至 子程序、 函式 程序或 動態連結函式庫 (DLL) 程序。
語法
[ 通話 ] 姓名 [ 論點列表 ]
Call 語句語法包含以下部分:
| 部分 | 描述 |
|---|---|
| Call | 隨意的; 關鍵字。 若有指定,必須在括號內標註 argumentlist 。 例如: Call MyProc(0) |
| name | 此為必要動作。 要打電話的程序名稱。 |
| 論點列表 | 選用。 以逗號分隔的 變數、 陣列或 表達 式清單,供傳遞給程序。
參數清單的元件可能包含關鍵字 ByVal 或 ByRef,以描述被呼叫程序如何處理參數。 然而, ByVal 和 ByRef 只能在呼叫 DLL 程序時與 Call 一起使用。 在 Macintosh 上, ByVal 和 ByRef 可搭配 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 支援與意見反應。