可以使用 Dim、Public 或 Private 语句来声明变量
dim name name=some value
也可以通过使用其名称来创建变量
name=some value
不过,后面这样的做法不是一种好习惯,这是因为您可能会在脚本中拼错变量名,那样可能会在脚本运行时引起奇怪的结果。比如,当您把 "name" 变量错拼为 "nime" 时,脚本会自动创建一个名为 "nime" 的变量。为了防止脚本这样做,您可以使用 Option Explicit 语句。如果您使用这个语句,就必须使用 dim、public 或 private 语句来声明所有的变量。把 Option Explicit 语句放置于脚本的顶端,这像这样:
option explicit dim name name=some value
变量的生存期指的是它可以存在的时长。
在一个子程序中声明变量后,变量只能在此程序内进行访问。当退出此程序时,变量也会失效。这样的变量称为本地变量。 可以在不同的子程序中使用名称相同的本地变量,因为每个变量只能在声明它的程序内得到识别。
如果在子程序以外声明了一个变量,页面上的所有子程序都可以访问访问它。这类变量的生存期始于它们被声明,止于页面被关闭。
数组变量的声明使用变量名后跟一个括号()。在下面的例子中,创建了一个包含三个元素的数组:
dim names(2)
括号中的数字是 2。数组的下标以 0 开始,因为此数组包含三个元素。这是容量固定的数组。
names(0)="George" names(1)="John" names(2)="Thomas"
同样地,通过使用特定数组元素的下标号,我们也可以取回任何元素的值。比如:
father=names(0)
可以在一个数组中使用多达 60 个维数。声明多维数组的方法是在括号中用逗号来分隔数字。比如,我们声明了一个包含 5 行 7 列的 2 维数组:
dim table(4, 6)
我们可使用两种程序:子程序和函数程序。
Sub mysub() some statements End Sub
Sub mysub(argument1,argument2) some statements End Sub
Function myfunction() some statements myfunction=some value End Function
Function myfunction(argument1,argument2) some statements myfunction=some value End Function
可以这样调用某个函数:
name = findname()
此函数名为 "findname",函数会返回一个值,这个值会存储于变量 "name" 中。
或者可以这样做:
msgbox "Your name is " & findname()
我们通过调用了名为 "findname" 的函数,这个函数返回的值会显示在消息框中。
可以这样调用子程序:
Call MyProc(argument)
或者,也可以省略 Call 语句:
MyProc argument
在下面的情况中,使用 If...Then...Else 语句:
如果需要在条件为 true 时只执行一行语句,可以把代码写为一行:
if
i=10Then
msgbox "Hello"
在上面的代码中,没有 .else.. 语句。我们仅仅让代码在条件为 true 时执行一项操作(当 i 为 10 时)。
假如我们需要在条件为 true 时执行不止一条语句,那么就必须在一行写一条语句,然后使用关键词 "End If" 来结束这个语句:
if i=10 Then
msgbox "Hello"
i = i+1
end If
在上面的代码中,同样没有 .else.. 语句。我们仅仅让代码在条件为 true 时执行了多项操作。
假如我们希望在条件为 true 时执行某条语句,并当条件不为 true 时执行另一条语句,就必须添加关键词 "Else":
if i=10 then
msgbox "Hello"
else
msgbox "Goodbye"
end If
当条件为 true 时会执行第一段代码,当条件不成立时执行第二段代码(当 i 不等于 10 时)。
假如你希望选择多套代码之一来执行,可以使用if...then...elseif语句:
if payment="Cash" then msgbox "You are going to pay cash!" elseif payment="Visa" then msgbox "You are going to pay with visa." elseif payment="AmEx" then msgbox "You are going to pay with American Express." else msgbox "Unknown method of payment." end If
假如你希望选择多套代码之一来执行,可以使用 SELECT 语句:
select case payment case "Cash" msgbox "You are going to pay cash" case "Visa" msgbox "You are going to pay with visa" case "AmEx" msgbox "You are going to pay with American Express" case Else msgbox "Unknown method of payment" end select
以上代码的工作原理:首先,我们需要一个简单的表达式(常常是一个变量),并且这个表达式会被做一次求值运算。然后,表达式的值会与每个 case 中的值作比较,如果匹配,被匹配的 case 所对应的代码会被执行。
经常地,当编写代码时,我们希望将一段代码执行若干次。我们可以在代码中使用循环语句来完成这项工作。
如果已经确定需要重复执行代码的次数,那么可以使用 For...Next 语句来运行这段代码。
我们可以使用一个计数器变量,这个变量会随着每次循环递增或递减,例如这样:
For i=1 to 10 some code Next
For 语句规定计数变量以及它的开始值和结束值。
Next 语句会以 1 作为步进值来递增变量i。
通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值。
在下面的例子中,计数变量i每次循环的递增步进值为 2。
For i=2 To 10 Step 2 some code Next
如果要递减计数变量,就必须负的步进值。并且需要规定小于开始值的结束值。
在下面的例子中,计数变量i每次循环的递减步进值为 2。
For i=10 To 2 Step -2 some code Next
如需退出 For...Next 语句,可以使用 Exit 关键词。