项,如下图。
这样VB就会在任何新模块中自动插入Option Explicit语句,但只会在已经建立的模块中自动插入。所以对于已经建立的模块,只能用手工方法向现有模块添加OptIon ExplIcIt语句。 (3)使用dim语句声明变量
显式声明变量时使用dim语句进行声明,dim语句也可以用来声明数组。DIm语句的格式为: DIm变量名[AS类型]
例如,我们可以在Form-Load事件过程中声明一个变量X,并将其赋值为3: Sub Form-Load() DIm x X=3 End Sub
DIm语句中用方括号括起来的“As类型”子句表示是可选的,如果使用这一子句就可以定义变量的数据类型。数据类型定义了变量所存储信息量类型,这些类型可以是String(字符串)、Integer(整型)、Currency(货币类型)或其他类型。变量也可以包含来自VIsual BasIc 或其他应用程序的对象类型。在下面的例子中就将变量x定义为整数类型的变量:
Sub Form-Load() Dim x As Integer X=3 End Sub
(4)全局变量的声明
全局变量是可以在工程中的所有程序模块使用的变量,使用关键字publIC式global声明。全局变量的声明只能位于标准模块的声明部分。要进入模块的声明,应单击代码窗口的对象列表框,然后从中选择“(通用)”选项。 在窗体模块的声明中声明变量,还可以使用PrIvate关键字。 PrIvate a as Integer
当一个变量用PrIvate关键字声明后,本窗体模块中的过程可以访问它,但其他模块的代码不能。
需要注意的是,在过程中不能使用Public或者Private关键字声明变量,这几个关键字只能在模块的声明中使用。 (5)静态变量
与模块级变量相对,在过程中声明的变量被称为局部变量,意思是变量只能在过程执行期间有效,其他过程中的代码不能使用。
使用DIm关键字声明的局部变量,在过程执行结束后变量的值不能被保留下来。在每一次过程重新执行时,变量 的内容将清除为零。
如果希望在离开该过程之后,还能保持 过程中局部变量原值,就应该将这个变量使用StatIc关键字声明为静态变量。用StatIc关键字在过程中声明的局部变量,即使过程结束,变量的值也仍然保留着,例如我们可以为一个窗体编写下面这样一程序,可以对用户在窗体上单击的次数计数。 Private Sub Form_click() Static I As Integer I=I+1 End Sub
就像在过程中不能使用PublIc和PrIvate关键字一样,在模块的声明中也不能使用StatIc关键字。 2. 常量
在进行VB程序设计 的过程中,也会遇到在代面中要经常使用 到一些数字,它们一次又一次地反复出现。更可怕的是,这些数字很长而且没有明确意义,因此很难记住,每次在代码中用到它们时都 要去查阅核对。如果这样的数字很多原话,事情就会更麻烦。
在这些情况下,定义常数可以大幅度地改进代码的可读性和可维护性。常数得有意义的名字,用以取代在程序运行中永远不变的数值或字符串。尽管常数有点像变量,但不能像对变量那样修改常数,也不能对常数赋以新值。VB有许多内部常数,但也可以建立自定义常数。
[PublIc/Private]const 常数名[As 类型]=表达式
参数”常数名”是有效的符号名,而参数”表达式”由数值常数升字符串常数以及运算符级组成;但在”表达式”中不能使用函数调用。 Const语句可以表示数量、字符串或时间/日期。例如: Const conpi=3.1415926535879
Public Const conYearsMissyou As Integer=6 Const conBirthday=#3/22/93#
如果用逗号进行分隔,则地一行中可放置多个常数声明: Const conpi=3.1415926535879,Const conBithday=#3/22/93#
等号”=”右边的表达式往往是数字或字符串,但也可以是其结果为数字或字符串的表达式。甚至可用先前定义过的常数定义新常数。 Const conPi2=conpi*2
一旦已定义常数,就可将其放置在代码中,使代码更可读。例如:If Today=ConBirthday Then PrInt”生日快乐”
和变量声明一样,Const语句也有作用范围,也使用相同的规则。需要注意的是如果创建在整个应用程序中有效的常数,请在标准模块的声明段中进行 声明,并在Const前面放置Public关键字。在窗体模块或类模块中不能声明PublIc常数。有关标准模块的详细介绍请参见第4章”使用VB5的集成开发环境”。
数组
1.声明固定大小的数组 数组是有序数据的集合。一个数组中的所有元素具有相同的数据类型。当然,
如果数据类型为VarIant时,各个元素能够包含不同的数据。在程序中可以声明任何基本数据类型的数组,包括用户自定义类型。有三种方法声明固定大小的数组,用一种方法取决于数组应有的有效范围:
建立公用数组,在模块的声明段用PuBlIc语句声明数组。 建立模块级数组,在模块的声明段用PrIVate语句声明数组。
建立局部数组,在过程中用DIm语句声明数组。数组有上界和下界,数组的元素在上下界内 是连续的。
声明数组的语法是: {DIm/Private/Public}数组名([下界To]上界)As 数组类型 例如:
Dim Counters(1TO 14)As Integer ‘14个元素的局部数组。 PrIvate Sume (1 tO 20) As Double ‘20个元素的模块级数组。 从上面的例子可以看出,在声明数组时,在数组名之后跟一个用括号括起来的下界和上界,表示索引的范围。如果用户不显式地使用To关键字声明下界,则VB默认下界为0.需要注意的是数组的上界不得超过Long 数据类型的范围,而且数组的上界必须大于等于下界。
optIon base 语句在模块级别中使用,用来声明数组下标的缺省下界。 语法如下:option base {0|1},缺省状态下数组下界为0。 说明:缺省状态下数组下界为 0,此时无需使用 OptIOn Base 语句。如果使用该语句规定数组下界1,则必须在模块的数组声明之前使用OptIoN Base 语句。 注意:
(1)DIm、Private、Public、ReDim 以及 Static 语句中的 To 子句提供了一种更灵活的方式来控制数组的下标。不过,如果没有使用 To 子句显式地指定下界,则可以使用 OPtIon Base 将缺省下界设为 1。使用 Array 函数创建的数组的下界也受 OptIon Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array )名称限定,如果是由类型库名称限定,则 使用Array 函数创建的数组的下界不受 OptIoN Base 的影响。
(2) OptIon Base 语句只影响位于包含该语句的模块中的数组下界。 关于数组声明的几点说明: