常用的过程有两种,一种为函数,给调用者返回值,一种为子程序,无返回值,还有一种叫事件的特殊子程序,用的比较少。
Sub过程:是一个过程复用,没有返回值,可使用参数
Function函数:可以有返回值,也有参数,若如参数,则必须包含空括号()。Function通过函数名返回一个值,这个值是在过程的语句中赋给函数名,返回值的数据类型总是Variant。
函数的基本定义方法为:
Function 函数名称(参数列表)
函数代码
函数名称=某值 ‘用来返回值
end function
注意:
1、Sub子程序不能在表达式中使用。
2、函数只能出现在赋值语句的右边,或者表达式中,函数不能直接使用,如果必须直接使用函数,则必须使用call语句调用,且必须要有返回值。
'定义函数
Function addnum(a,b)
addnum=a+b
End Function
'调用函数
msgbox addnum(2,3)
VBScript数据类型
VBScript只有一种数据类型Variant,根据使用的不同,可包含各种不同的信息。可用VarTpye查看Variant的子类型
VarType返回的常量与值对应表
ConstantValueDescription
vbEmpty0Uninitialized (default)
vbNull1Contains no valid data
vbInteger2Integer subtype
vbLong3Long subtype
vbSingle4Single subtype
vbSingle5Double subtype
vbCurrency6Currency subtype货币型
vbDate7Date subtype
vbString8String subtype
vbObject9Object
vbError10Error subtype
vbBoolean11Boolean subtype
vbVariant12Variant (used only for arrays of variants)
vbDataObject13Data access object数据访问对象
vbDecimal14Decimal subtype
vbByte17Byte subtype
vbArray8192Array
说明:
在VBScript中对变量、方法、函数和对象的引用是不区分大小写;
显式地申明一个变量,需要使用关键字Dim,申明多个同类型变量,可以用逗号分隔;
VBScript中不允许在申明变量的时候同时给变量赋值。但是允许在一行代码内同时对两个变量进行赋值,中间用冒号分隔。
VBScript的循环语句
For...Next:
For i=1 to 5
print i
Next
print "结束"
For each...Next:
用For each …… Next语句可以对数组元素进行处理,包括“查询、显示或读取”。它所重复执行的次数由数组中元素的个数确定,也就是说,数组中有多少个元素,就自动重复执行多少次。
Dim a(),num,x
num=inputbox("输入Num的值")
ReDim preserve a(num)
a(0)=1:a(1)=2
print Ubound(a) '输出数组a的长度
For each x in a '输出数组a中的所有数据
print x
Next
注意:在上述两种循环中随时可以使用exit for来退出循环
While...Wend:
Dim i
i=5
While i>1
print i
i=i-1
Wend
Do while...Loop:在条件满足时执行一段代码
Dim i
i=5
Do while i=5
print i
i=i-1
Loop '结果输出5
Do until...Loop:在条件不满足时执行代码
Dim i
i=5
Do until i=1
print i
i=i-1
Loop '结果输出5,4,3,2
VBScript的数组
定义固定长度的数组:Dim A(9) 该数组具有10个数据A(0)--A(9)
给数组赋值:A(0)=1
动态定义数组长度,如:
Dim B()
num=10
ReDim B(num)
注意:在改变数组的大小时,数组的数据会被破坏,使用关键字preserve来保护数据,如
ReDim preserve B(num)
4. 定义二维数组: 数组名(个数,维数)
5. 获取数组长度使用Ubound函数,Ubound(B,[维度数]),维度数不写默认为1
条件语句:if...then...else 和 select...case
If....Then....Else:
box = inputbox("请输入数字:")
If box=1 Then
msgbox 1
elseif box=2 then
msgbox 2
elseif box =3 then
msgbox 3
else
msgbox "输入的数字无效!"
End If
Select...Case:
以上例子使用select...case实现:
box=inputbox("请输入数字:")
Select Case box
Case 1
msgbox 1
Case 2
msgbox 2
Case 3
msgbox 3
Case else
msgbox "输入的数字无效!"
End Select