|
11.3.1 了解 Visual Basic 语法
本节解释最常见的语法元素。
11.3.1.1 Activate 方法的语法
语法:object.Activate
在 Activate 方法的语法中,object 是一个所提供信息的占位
符,在此例中的代码会返回一个对象。例如,下面的过程会在活动
的文档中激活第二个窗口。
Sub MakeActive()
Windows(2).Activate
End Sub
11.3.1.2 MsgBox 函数的语法
语法:MsgBox(prompt[, buttons] [, title] [, helpfile,
context])
在 MsgBox 函数的语法中,括号内的参数是此函数的命名参数。
方括号所包含的参数是选择性的(在Visual Basic 中不用键入方括
号)。在 MsgBox 函数中,唯一必须提供的参数(prompt)是做为
提示的文本。
在代码中可以利用位置或名称来指定函数与方法的参数。若利用
位置来指定参数,则必须根据语法中的顺序,利用逗号来分隔每一
个参数,例如:
MsgBox "Your answer is correct!",0,"Answer Box"
若以名称来指定参数,则须使用参数名称或跟着冒号与等号
(:=),最后再加上参数值。可以任何的顺序来指定命名参数,例
如:
MsgBox Title:="Answer Box", Prompt:="Your answer is
correct!"
函数以及某些方法的语法会利用圆括号将参数封闭起来。这些函数和方法会返回值,所以必须用圆括号将参数封闭起来,才可以赋
值给变量。如果忽略返回值或是没有传递所有的参数,则可以不用
圆括号。方法若不返回值,则不用将参数用圆括号封闭起来。上述
准则不管是使用命名参数或位置参数都适用。
在下面的示例中,MsgBox 函数的返回值是一个号码,它被存储
在变量 myVar 中,以用来指示选择的按钮。因为需要用到返回值,
所以调用时必须使用圆括号。而另一个消息框则是用来显示变量的
值。
Sub Question()
myVar = MsgBox(Prompt:="I enjoy my job.", _
Title:="Answer Box", Buttons:="4")
MsgBox myVar
End Sub
11.3.1.3 选项语句的语法
语法:Option Compare {Binary | Text | Database}
在 Option Compare 语句的语法中,大括号和垂直线指示三项中
的强制性选择(在Visual Basic 的语句中不用键入大括号)。例如,
下列的语句指出在模块中,字符串的比较是根据文本的排序顺序而不区分大小写。
Option Compare Text
11.3.1.4 Dim 语句的语法
语法: Dim varname[ ( [subscripts] ) ] [As type] [,
varname[([subscripts])] [As type]] . . .
在 Dim 语句的语法中,Dim 是必备的关键字。而唯一必备的元
素是 varname(变量名)。例如,下列的语句创建三个变量:myVar、
nextVar 和 thirdVar。它们会自动被声明成 Variant 变量。
Dim myVar, nextVar, thirdVar
下面的示例声明了一个Sing 型的变量。它包含了数据类型,
如此可以节省内存并且可帮助从代码中找出错误。
Dim myAnswer As Sing
若在一个语句中声明好几个变量,则必须包含每一个变量的数据
类型。变量在声明时若少了数据类型,则会自动地声明为Variant 。
Dim x As Integer, y As Integer, z As Integer
在下列的语句中,x 与 y 都被指定成 Variant 数据类型,只有
z 被指定成 Sing 数据类型。
Dim x, y As Integer,Z As Sing
如果声明一个数组变量,则必须包含圆括号,但下标则是可选的。
下列的语句中定义了一个动态数组 myArray。
Dim myArray()
11.3.2 有效地利用数据语法
表11-1 列出VBA 所支持的数据类型,以及存储空间的大小与范
围。


注意:
任何数据类型的数组都需要 20 个字节的内存空间,加上每一数
组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的
内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,
以 4 个 2 字节的Integer 数据元所组成的一维数组中的数据,占 8个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总
内存空间为 32 个字节。包含一数组的 Variant 比单独的一个数组
需要多 12 个字节。
注意:
使用 SConv 函数把字符串数据从一种类型转换为另一种类型。
除非有其他的指定,否则未声明变量会被指定成 Variant 数据
类型。这个数据类型可使写程序变得较容易,但它并不总是使用中
最有效率的数据类型。
若有下列情形时必须考虑使用其他的数据类型:
- 程序非常大并且使用很多变量。
- 程序的执行速度必须尽可能得快。
- 将数据直接写到随机存储文件中。
除了 Variant 之外,支持的数据类型包括 Byte、Boolean、
Integer、Long、Single、Double、Currency、Decimal、Date、Object
以及 Sing。可使用 Dim 语句去声明一个指定类型的变量,例如:
Dim X As Integer
上述语句声明变量 X 是一个整型,其范围介于-32,768~32,767
之间。如果试着去设置超出此范围的数值给 X ,则会有错误发生。如果试着去指定一个分数给 X,则此分数会自动四舍五入。例如:
X = 32768 ' 产生错误。
X = 5.9 ' 设置 x = 6。
11.3.3 Visual Basic 的命名规则
当在 Visual Basic 的模块中为过程、常数、变量以及参数命名
时,可以使用下列的规则:
- 第一个字符必须使用英文字母。
- 不能在名称中使用空格、句点(.)、惊叹号(!)、或 @、&、
$,# 等字符。
- 名称的长度不可以超过 255 个字符。
?br />
|