什么是VBScript?
VBScript的全称是Visual Basic Script,有时也简称为VBS。
VBScript是微软开发的一种脚本语言,可以看作是Visual Basic的简化版,目前这种语言广泛应用于网页和ASP程序。
与VB不同,VBScript不能生成独立的exe可执行文件,需要由其它软件解释才能运行。有许多软件支持VBScript,比如微软IE浏览器和Office等。
VBScript的局限是只能运行于Windows操作系统和基于IE的浏览器,而JavaScript则受到所有网页浏览器的支持,因此客户端使用JavaScript的更为普遍。
基本格式
首先要强调一下,VBScript代码中一定要使用英文的标点符号——半角符号,否则代码无法运行。半角符号一般比较窄的,大约是半个中文字符的宽度。
VBScript代码是不分大小写的。随便用大小写都行,但不要太随便了,易读即可。
可以在一个单引号(')之后给代码添加注释,注释的内容不被执行。例如:
如果代码一行太长,想写成两行的话,要在行尾加下划线(_)作续行符,例如:
a = (1 + 2 + 3) * (1 + 2 + 3)'写成两行a = (1 + 2 + 3) * _
(1 + 2 + 3) |
要想把多行代码写成一行,要用冒号(:)作分隔符。例如:
a = 1
b = 2
c = 3'写成一行a = 1 : b = 2 : c = 3 |
等号(=)一般表示赋值,而不同于数学公式中的等号。例如a=25:a=30这两句代码的意思是,a的值是25,后来a的值又变成30了;而作为数学公式,a如果已经等于25了,就不能再等于30。
VBScript的语句,初学者学会两个就够用了,If语句和For语句。
如果你对过程(Sub)和函数(Function)分不清楚的话,没关系,都用函数好了。
运算符号
+加-减*乘/除
\整除Mod求余数 (例如a=7\3和b=7 Mod 3,结果分别是a=2 b=1)
=等于<>不等于
>大于<小于>=大于等于<=小于等于
Not不(逻辑非)And并且(逻辑与)Or或者(逻辑或)
&字符串连接 字符串连接有时也可以用+号,但+不能直接连接数字。例如:
s = "a" & "b"'结果是s="ab"s = "a" + "b"'结果是s="ab"s = 1 & 2'结果是s="12"s = 1 + 2'结果是s=3s = "1" + "2"'结果是s="12" |
算式中没有大、中、小括号之分,全部写成小括号。例如:a=[2-3*(2+5)]/6 要写成a=(2-3*(2+5))/6
变量
VBScript中变量可以不声明,直接使用。但有时不声明会出错,所以建议养成声明变量的好习惯。
声明变量的方法是在使用变量之前,加一行Dim [变量名]代码,例如:
Dim var1
声明多个变量时,使用逗号分隔变量。例如:
Dim a, b, c
变量名必须以字母开头,不能包含空格或标点符号。
(VBScript只有一个数据类型,即Variant,所以不要Dim...As,直接Dim就行了。)
Variant数据子类型
常见的Variant数据子类型有字符串(代表一串文本)、整数、小数、日期等。
字符串值一定要写在双引号中,例如:s = "How are you?"
运算时经常会需要对子类型进行转换,下面介绍几种常用的转换方法:
a = CStr(123)'把数字123转为字符串"123"b = CSng(12.3)'把"12.3"转为小数(单精度浮点数)12.3c = CInt(12.6)'把12.6转为整数13(四舍五入)d = Int(12.6)'把12.6转为整数12(保留整数部分)e = Int("&Hff")'把十六进制数0xff转为十进制255f = Hex(255)'把十进制255数转为十六进制FF |
If语句
单行的If语句格式,参考下面的例子
Ifa > 0Thenb = "a大于0"'意思是:如果a>0,则b="a大于0"Ifa > 0Andb > 0Thenc = "ab都大于0"'意思是:如果a>0,并且b>0,则c="ab都大于0"Ifa > 0Orb > 0Thenc = "a或b大于0"'意思是:如果a>0,或者b>0,则c="a或b大于0" |
如果Then后面有多行,结尾处要写End If
Ifa > 0 Then
b = "a大于0吗?"
c = "是的"End If |
If(如果)...Else(如果不)
Ifa > 0Thenb = "a大于0"Elseb = "a小于等于0"End If'意思是:如果a>0,则b="a大于0"' 若非如此,则b="a小于等于0" |
要是有多种可能,在If和Else之间加入ElseIf,可加入多个ElseIf。
Ifa > 0Thenb = "a大于0"ElseIfa < 0
b = "a小于0"Elseb = "a等于0"End If |
For语句
For循环语句中的代码可以运行很多遍。“For i=1 To 3”代表运行3遍。
网页中很多恶意代码就是用这个语句实现的,比如你点一个网页链接,就会弹出十几个广告窗口。
Fori=1To3
MsgBox("这是第" & i & "遍")Next'意思是弹出3遍信息窗口 |
下例中,Step后面的数字代表i的增量,指i从1到10000每次增加2。Exit For表示终止循环,可以提前结束循环。
Fori=1To10000Step2
MsgBox("i的值为" & i)
if i > 3 thenExit For'i>3时结束循环Next |
函数
函数可以把很多行代码成组,组成一个命令来执行。
下面的例子,“sayHello”是函数的名字,是由用户自己定义的。定义好函数后,我们以后只要写一句sayHello(),就可以一下子执行sayHello定义中的三行代码。
FunctionsayHello()Dim s
s = "Hello World!"
MsgBox(s)End Function'调用这个函数sayHello() |
函数也可以定义为运算求值的过程。下面的例子,小括号里的a,b代表要输入的参数,是两个变量,变量名自己随便起。Add=a+b的Add代表函数返回值,必须是函数的名字。
FunctionAdd(a,b)Add= a + b
End Function'调用这个函数c =Add(1,2)'运行结果:c=1+2=3 |