10.5.2 程序设计中的常用语句

10.5.2 程序设计中的常用语句

1.注释语句

(1)Rem注释内容。

(2) “′”(半角符的单引号)注释内容。

例如:

Rem定义两个数字变量。

Dim X1,X2

′变量X1,X2——此为注释语句,不被执行。

X1=1

X2=2

2.声明语句

(1)Sub⋯End Sub语句。

格式:

Sub 过程名()

语句行

End Sub

功能:命名和定义一个过程。

例如:使用Sub STUMARK()⋯End Sub定义了一个判断成绩及格与否的过程程序(见例10.2与图10-25)。

(2)Dim语句

格式:

Dim[WithEvents]Varname[([Subscripts])][As[New]type][,[WithEvents]

Varname[([Subscripts])][As[New]type]]⋯

功能:声明变量并分配存储空间

参数:

WithEvents是可选的关键字,说明Varname是一个用来响应由ActiveX对象触发的事件的对象变量。WithEvents只有在类模块中才是合法的。使用WithEvents,可以声明任意个所需的单变量,但不能使用WithEvents创建数组。New和WithEvents不能一起使用。

Varname为变量的名称,是必需的关键字,遵循标准的变量命名约定。

Subscripts为数组变量的维数,是可选的关键字。最多可以定义60维的多维数组。Subscripts参数使用下面的语法:[lower to]upper[,[lower to]upper]⋯如果不显式指定lower,则数组的下界由Option Base语句控制。如果没有使用Option Base语句,则下界为0。

New是可选的且可隐式地创建对象的关键字。如果使用New来声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用Set语句来给该对象引用赋值。New关键字不能声明任何内部数据类型的变量以及从属对象的实例,也不能与WithEvents一起使用。

Type是可选的关键字,为变量的数据类型,可以是Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(对变长的字符串)、String*length(对定长的字符串)、Object、Variant、用户定义类型或对象类型。所声明的每个变量都要一个单独的As Type子句。

说明:

①在模块级别中用Dim声明的变量,对该模块中的所有过程都是可用的。在过程级别中声明的变量,只在过程内是可用的。

②可以使用Dim语句在模块级别或过程级别中声明变量的数据类型。例如,下面的语句声明了Integer类型的变量。

Dim NumberOfEmployees As Integer也可以使用Dim语句来声明变量的对象类型。下面的语句为工作表的新建实例声明了一个变量。

Dim X As New Worksheet

③如果定义对象变量时没有使用New关键字,则在使用该变量之前,必须使用Set语句将该引用对象的变量赋值为一个已有对象。在该变量被赋值之前,所声明的对象变量有一个特定值Nothing,这个值表示该变量没有指向任一个对象实例。

④可以使用带空圆括号的Dim语句来定义动态数组。在定义动态数组后,可以在过程内使用ReDim语句来定义该数组的维数和元素。如果试图在Private,Public或Dim语句中重新定义一个已显式定义了大小的数组的维数时,就会发生错误。

⑤如果不指定数据类型或对象类型,且在模块中没有Deftype语句,则该变量默认设置为Variant类型。

⑥当初始化变量时,数值变量被初始化为0,变长的字符串被初始化为一个零长度的字符串(""),而定长的字符串则用0填充。Variant变量被初始化为Empty。用户自定义类型的变量的每个元素作为各自独立的变量进行初始化。

注意:当在过程中使用Dim语句时,通常将Dim语句放在过程的开始处。

3.赋值语句

格式:[Let]变量名=数值

其中,Let为可选项。

功能:向一个变量传送一个数值。

例如:

X1=100

Let X1=200

Dim X2 As integer′定义X2为整型变量

X2=10

4.人机对话1

格式:MsgBox("提示信息")

功能:以函数形式在程序运行时,显示提示信息,实现人机对话

例如:MsgBox("不及格")

当程序执行该语句时在屏幕上显示“不及格”。

5.人机对话2

格式:InputBox("提示信息")

功能:以函数形式在程序运行时,显示提示信息,并等待用户键盘输入信息,按【Enter】键激活,实现人机对话。

例如:当程序执行到MARK=Val(InputBox("INPUT CJ"))时,在屏幕上显示“INPUT CJ”,并等待输入,当输入50并按【Enter】键后,则将50转换成数字型送入变量MARK中。

尽管MsgBox与InputBox均为函数,不是语句,但是仍可实现人机对话,这对初学程序者,调试自己的程序很有用。