文档介绍:2 、隐含声明 VBA 允许用户在编写应用程序时,不声明变量而直接使用,这就是隐式声明。所有隐式声明的变量都是 Variant 数据类型。例如: Dim m,n, ’m,n 为变体 Variant 变量 NewVar=528 ’ NewVar 为 Variant 类型变量, 其值为 258 。二、强制声明在默认情况下, VBA 允许在代码中使用未声明的变量, 如果在模块设计窗口的顶部“通用—声明”区域中,加入语句: Option Explicit 强制要求所有变量必须定义才能使用。这种方法只能为当前模块设置了自动变量声明功能, 如果想为所有模块都启用此功能, 可以单击菜单命令“工具”下“选项”对话框中, 选中“要求变量声明”选项即可。(1 )局部范围( Local ) 变量定义在模块的过程内部,过程代码执行时才可见。在子过程或函数过程中定义的或直接使用的变量作用范围都是局部的。在子过程或函数内部使用 Dim 、 Static … As 关键字说明的变量就是局部范围的。(2 )模块范围( Module ) 变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程或函数过程中可见。在模块的通用说明区,用 Dim 、 Static 、 Private … As 关键字定义的变量作用域都是模块范围。(3 )全局范围( Public ) 变量定义在标准模块的所有过程之外的起始位置,运行时在类模块和标准模块的所有子过程或函数过程中都可见。在标准模块的变量定义区域,用 Public … As 关键字说明的变量就属于全局的范围。变量的持续时间(生命周期)是从变量定义语句所在的过程第一次运行,到程序代码执行完毕并将控制权交回调用它的过程为止的时间。 Access 建立的数据库对象及其属性,均可被看成是 VBA 程序代码中的变量及其指定的值来加以引用。例如, Access 中窗体和报表对象的引用格式为: Forms !窗体名称!控件名称[. 属性名称] 或 Reports !报表名称!控件名称[. 属性名称] 关键字 Forms 或 Reports 分别表示窗体或报表对象集合。感叹号“!”分隔开对象名称和控件名称。“属性名称”部分缺省,则为控件基本属性。如果对象名称中含有空格或标点符号,就要用方括号把名称括起来。,也称作数组元素变量。数组变量由变量名和数组下标构成,使用数组必须先定义数组。通常用 Dim 语句来定义数组,定义格式为: Dim 数组名([< 下标下限>to]< 下标上限>)[As < 数据类型>] 缺省情况下, 下标下限为 0, 数组元素从“数组名(0) ”至“数组名( 下标上限)”; 如果使用 to选项,则可以安排非 0 下限。例如, dim score ( 10) as Integer 定义了 11 个整形数构成的数组,数组元素为 score(0) 至 score(10) 再如, dim score (1 to 10) as Integer 定义了 10 个元素的整型数组,数组元素为 score(1) 至 score(10) 注:(1 )所有数组元素在内存连续存放(2 )根据下标区分数组元素关于数组的定义,还有下面的几点说明: (1 )定义数组时数组名的命名规则与变量名的命名规则相同。(2) 一般在定义数组时应给出数组的上界和下界。但也可以省略下界,< 下界> 缺省为0。例如, Dim a( 10) As Single 默认情况下,数组 a由 11 个元素组成。若希望下标从 1 开始,可在模块的通用声明段使用 Option Base 语句声明。其使用格式为 Option Base 0|1 ' 后面的参数只能取 0或1 (3)< 下界>和< 上界> 不能使用变量, 必须是常量, 常量可以是字面常量或符号常量, 一般是整型常量。(4 )如果省略 As 子句,则数组的类型为 Varient 变体类型。二维数组的定义格式为: Dim 数组名([< 下界>to]< 上界>, [< 下界>to]< 上界>)[As < 数据类型>] 例如, Dim c(1 To 3,1 To4) As Single c(1,1)c(1,2)c(1,3)c(1,4) c(2,1)c(2,2)c(2,3)c(2,4) c(3,1)c(3,2)c(3,3)c(3,4) 六、变量标识命名法规在编写 VBA 程序代码时,会用到大量的变量名称和不同的数据类型。对于控件对象,可以用 VBA 的 Set 关键字将每个命名的控件对象指定为一个变量名称。目前, VB 和 VBA 均推荐使用 Hungarian 符号法作为命名法则。该方法也被广泛用在 C 和 C++ 等一些程序