过程分类
在VBScript中,过程被分为两类:Sub过程和Function过程。
Sub过程
Sub过程是包含在Sub和EndSub语句之间的一组VBScript语句,执行操作但不返回值。Sub过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果Sub过程无任何参数,则Sub语句必须包含空括号()。
下面的Sub过程使用两个固有的(或内置的)VBScript函数,即MsgBox和InputBox,来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用VBScript创建的Function过程完成。此过程在以下讨论之后演示。
SubConvertTemp() temp=InputBox("请输入华氏温度。",1) MsgBox"温度为"&Celsius(temp)&"摄氏度。" EndSub |
Function过程
Function过程是包含在Function和EndFunction语句之间的一组VBScript语句。Function过程与Sub过程类似,但是Function过程可以返回值。Function过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果Function过程无任何参数,则Function语句必须包含空括号()。Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function返回值的数据类型总是Variant。
在下面的示例中,Celsius函数将华氏度换算为摄氏度。Sub过程ConvertTemp调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。
SubConvertTemp() temp=InputBox("请输入华氏温度。",1) MsgBox"温度为"&Celsius(temp)&"摄氏度。" EndSub FunctionCelsius(fDegrees) Celsius=(fDegrees-32)*5/9 EndFunction |
过程的数据进出
给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用Sub语句或Function语句创建过程时,过程名之后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。例如,在下面的示例中,fDegrees是传递给Celsius函数的值的占位符:
FunctionCelsius(fDegrees) Celsius=(fDegrees-32)*5/9 EndFunction |
要从过程获取数据,必须使用Function过程。请记住,Function过程可以返回值;Sub过程不返回值。
在代码中使用Sub和Function过程
调用Function过程时,函数名必须用在变量赋值语句的右端或表达式中。例如:
Temp=Celsius(fDegrees) 或 MsgBox"温度为"&Celsius(fDegrees)&"摄氏度。" |
调用Sub过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使用Call语句,但如果使用了此语句,则必须将所有参数包含在括号之中。
下面的示例显示了调用MyProc过程的两种方式。一种使用Call语句;另一种则不使用。两种方式效果相同。
CallMyProc(firstarg,secondarg) MyProcfirstarg,secondarg |
请注意当不使用Call语句进行调用时,括号被省略。