Call 语句
将控制转移到 Sub过程、 函数 过程或 动态链接库 (DLL) 过程。
语法
[ 调用 ] name [ argumentlist ]
Call 语句语法具有下列部分:
Part | 说明 |
---|---|
通话 | 可选;关键字。 如果指定,则必须将 argumentlist 用括号括起。 例如: Call MyProc(0) |
名称 | 必填。 要调用的过程的名称。 |
argumentlist | 可选。 要传递到过程的变量、数组或表达式的以逗号分隔的列表。
argumentlist 的组件可能包含关键字 ByVal 或 ByRef,这两个关键字介绍调用过程如何对待参数。 但是,ByVal 和 ByRef 仅当调用 DLL 过程时才能与 Call 一起使用。 在 Macintosh 上,ByVal 和 ByRef 可在发出对 Macintosh 代码资源的调用时与 Call 一起使用。 |
备注
调用过程时无需使用 Call 关键字。 但是,如果使用 Call 关键字调用需要参数的过程,则 argumentlist 必须以括号结尾。 如果您省略 Call 关键字,则还必须省略 argumentlist 周围的括号。 如果使用 Call 语法调用任何内部或用户定义的函数,则将丢弃该函数的返回值。
在 Visual Basic .NET 中,在大多数情况下只能省略“调用”关键字 (keyword) 保留括号,但在 VBA 中,必须同时使用或不使用“调用”和括号。
若要将整个数组传递到过程,请使用后跟空括号的数组名称。
示例
此示例演示如何使用 Call 语句将控制权转移到 Sub 过程、内部函数和动态链接库 (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 支持和反馈,获取有关如何接收支持和提供反馈的指南。