作者:杜勇
描述:将控制权转移到一个Sub过程,Function过程,通俗的讲就是调用一个子程序或函数。
一、语法:
[Call]name[argumentlist]
Call语句的语法包含下面部分:
|
部分 |
描述 |
| call | 可选参数;关键字。如果指定了这个关键字,则参数必须加上括号,例如:Call MyProc(0) |
| name (过程名) | 必要参数,要调用的过程名称 |
| argumentlist(参数列表) | 可选参数,传递给过程的变量、数组或表达式的列表,各参数间以逗号隔开。Argumentlist的每个参数都可以加上关键字ByVal或ByRef,来描述被调用的过程将如何处理这些参数。 |
二、说明:
调用一个过程时,并不一定要使用Call关键字。如果使用Call关键字来调用一个需要参数的过程,argumentlist就必须要加上括号。
Call name(argumentlist)
如果省略了Call关键字,那么也必须要省略argumentlis外面的括号。
Name argumentlist
如果需要函数的返回值,则应先定义一个变量,然后将函数的返回值赋予变量,这时虽然省略了Call关键字,但argumentlist也必须要加上括号。如下面的格式:
Dim str As String
str = name(argumentlist)
若要将整个数组传给一个过程,使用数组名,然后在数组名后加上空括号。
有时为了方便,可用公有变量传递参数。
三、应用举例:
下列示例示范如何使用Call语句来调用子过程。建立一个标准工程,在窗体上添加一命令按钮和一个文本框,将下面的程序粘贴过去。
Private Sub Command1_Click()
Call procedure
End Sub
Private Sub procedure()
Dim a '定义变量
a = Date '取日期
Text1.Text = a
End Sub
单击命令按钮,Text1显示日期。
下列示例示范如何使用省略了Call关键字来调用函数,并根据返回值决定程序是否继续运行。还在上面的这个标准工程里,用下面的程序替换上面程序中的第一部分。
Private Sub Command1_Click()
Dim str As String '定义变量
str = MsgBox("是否继续运行", vbYesNo + vbExclamation, Me.Caption)
If str = vbNo Then Exit Sub
procedure
End Sub
单击命令按钮后MsgBox函数提示“是否继续运行”,单击‘否’退出程序,Text1无变化;单击‘是’运行后面的程序,Text1显示日期。