模块与VBA编程基础(3)
定义变量最常用的方法是使用Dim?[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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




