教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

模块与VBA编程基础(3)

来源:网络收集 时间:2026-08-15
导读: 定义变量最常用的方法是使用Dim?[As ]结构,其中,As后指明数据类型,或在变量名称后附加类型说明字符来指明变量的数据类型。这种方式是显式定义变量。 例如: Dim New Var_1 As Integer ’NewVa为整型变量 Dim New

定义变量最常用的方法是使用Dim?[As ]结构,其中,As后指明数据类型,或在变量名称后附加类型说明字符来指明变量的数据类型。这种方式是显式定义变量。 例如:

Dim New Var_1 As Integer ’NewVa为整型变量

Dim New Var_2% ,sun! ’NewVar_2为整型变量,sun为单精度型变量 Dim NewVar_2% ,sun!相当于Dim New Var_2 As Integer, sum As Single。 2.隐含声明

没有直接定义而通过一个值指定给变量名,或Dim定义中省略了As< VarType>短语的变量,或当在变量名称后没有附加类型说明字符来指明隐含变量的数据类型时,默认为Variant数据类型。如: Dim m,n, ’m、n为变体Variant变址

NewVar = 528 ’NewVar为Variant类型变见,值是528

二、强制声明

在默认愉况下,V8A允许在代码中使用未声明的变址.如果在模块设计窗口的顶部“通用-声明”区域中,加人语句: Option Explicit

强制要求所有变置必须定义才能使用。这种方法只能为当前模块设置了自动变置声明功

能,如果想为所有新模块都启用此功能。可以单击菜单命令“工具”下“选项”对话框中,选中“要求变量声明”选项即可。 三、变量的作用域

在VBA编程中,变量定义的位置和方式不同,则它存在的时间和起作用的范围也有所不同,这就是变量的作用域与生命周期。Visual Basic中变量的作用域有3个层次。 1.局部范围(Local)

变量定义在模块的过程内部,过程代码执行时才可见。在子过程或函数过程中定义的或直接使用的变量作用范围都是局部的。在子过程或函数内部使用Dim、Static?As关键字说明的变量就是局部范围的。 2.模块范围(Module)

变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程和函数过程中可见。在模块的通用说明区,用Dim、Static、Private?As关键字定义的变量作用域都是模块范围。 3.全局范围(Public)

变置定义在标准模块的所有过程之外的起始位置,运行时在所有类模块和标准模块的所有子过程与函数过程中都可见。在标准模块的变量定于区域,用Public?As关键字说明的变量就属于全局的范围。 变量还有一个特征,称为持续时间或生命周期。变量的持续时间是从变量定义语句所在子过程第一次运行,到程序代码执行完毕并将控制权交回调用它的过程为止的世界。每次子过程或函数过程被调用时,以Dim?As语句说明的局部变量,会被设定为默认值,数值数据类型为0,字符串变量则为空字符串("")。这些 局部变量,有着与子过程或函数过程登场的持续时间。

要在过程的运行时保留局部变量的值,可以用Static关键词代替Dim定义静态变量。静态(Static)变置的持续时间是整个模块执行的时间,但它的有效作用范围是由其定义为止决定的。

四、数据库对象变量

Access建立的数据库对象及其属性,均可被看成是VBA程序代码中的变量及其指定的值来加以引用。例如,Access中窗体与报表对象的引用格式为: Forms!窗体名称!控件名称[.属性名称]

或 Reports!报表名称!控件名称[.属性名称]

关键词Forms或Reports分别表示窗体或报表对象集合。感叹号“!”分隔开对象名称和控件名称。“属

性名称”部分缺省,则为控件基本属性。

如果对象名称中含有空格或标点符号,就要用方括号把名称括起来。 下面举例说明含有学生编号信息的文本框操作: Forms!学生管理!编号 =“980306”

Forms!学生管理![编号] =“980306” ’对象名称含空格时用[ ]

此外,还可以使用Set关键字来建立控件对象的变量。当需要多次引用对象时,这样处理是很方便。例如,要多次操作引用窗体“学生管理”上控件“姓名”中的值时,可以使用以下处理方式: Dim txtNameAs Control ’定义控件类型变量 Set txtName = Forms!学生管理!姓名 ’指定引用窗体控件对象 txtName =“冯伟” ’操作对象变量

借助将变量定义为对象类型并使用Set语句将对象指派到变置的方法,可以将任何数据库对象指定为变量的名称。当指定给对象一个变量名时,不是创建而是引用内存的对象。 关于VHA中的数据库对象操作,在后面的章节中还有介绍。 五、数组

数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变置。数组变量由变量名和数组下标构成,通常用Dim语句来定义数组,定义格式为: Dim数组名([下标下限to]下标上限)

缺省情况下,下标下限为0,数组元素从“数组名(0)”至“数组名(下标上限)”;如果使用to选项,则可以安排非0下限。 例如:

Dim NewArrary(10)As Integer ’定义了l1个整型数构成的数组,数组元素为 NewArray(0)至NewArray(10)

Dim NawArray(1 To 10)As loteger ’定义了10个整型数构成的数据,数组元素为 NewArray(1)至NewArray(10)

VBA也支持多维数组。可以在数组下标中加入多个数值,并以逗号分开,由此来建立多维数组,最做可以定义60维。下面定义了一个三维数组NewArray:

Dim NewArray(5,5,5)As Integer ’有6 * 6 * 6 = 216个元素

VBA还特意支持动态数组。定义和使用方法是:先用Dim显示定义数组但不指名数组元素数目,然后用ReDim关键字来决定数组包含的元素数,以建立动态数组。 下面举例说明动态数组的创建方法:

Dim NewArray( )As Long ’定义动态数组 …

ReDim NewArray(9,9,9) ’分配数组空间大小 …

实际开发过程中,当预先不知道数组定义需要多少元素时,动态数组是很有用的。而且不再需要动态数组包含的元素时,可以使用ReDim将其设为0个元素,就释放该数组占用的内存。

数组的作用域和生命周期的规则和关键字的使用方法与传统变量的范围及持续时间的规则和关键字的用法相同。

可以在模块的说明区域加人Global或Dim语句。然后在程序中使用ReDim语句,以说明动态数组为全局的和模块级的范围。如果以Static取代Dim来说明数组的话,数组可在程序的运行时保留上次运行时

的值。

VBA中,在模块的声明部分使用“Oplion Bale 1”语句。可以将数组的默认下标下限由0改为1。 六、变量标识命名法则

在编写VBA程序代码时,会用到大量的变量名称和不同的数据类型。对于控件对象,可以用 VBA的Set关键字将每个命名的控件对象指定为一个变量名称。但随着程序代码的增多,要记住所有变量的数据类型。就变成很困难的事情。

目前,VB和VBA均推荐使用Hungarian符号法来作为变量命名的法则。该方法也被广泛用在C和C++等程序设计中。

Hungarian符号法使用一组代表数据类型的码。用小写字母作为变量名的前缀。例如,代表文本框的字首码是txt,那么,文本框变量名为tetName.表8.4列出了最常用的变量标识符的前缀。编写程序时,使用上述变量标识命名法则,可使代码易于阅读与理解。

七、符号常量

在VBA编程过程中,对于一些使用频度较多的常量,可以用符号常量形式来表示。符号常量使用关键字Const来定义,格式如下: Const符号 …… 此处隐藏:4321字,全部文档内容请下载后查看。喜欢就下载吧 ……

模块与VBA编程基础(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/404014.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)