版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章,VBA编程介绍,执行摘要,8-1 VBA概念8-2 VBA编程基础8-3 VBA常用语句8-4 VBA程序流控制8-5数组8-6 VBA和宏8-7摘要与实践,VBA(Visual Basic for Application)是微软Office系列软件的内置编程语言。其语法结构与Visual Basic编程语言兼容,采用面向对象的编程机制和可视化编程环境。8-1 VBA概述,8-1-1 VBA介绍,VBA的收集和对象应用程序由许多对象组成,如表、窗体、查询等。对象是帮助构建应用程序的元素。以特定的方式组织这些对象形成了一个应用程序。数据库窗口将可选对象排列在一起,形成不同的类。8-1-2
2、面向对象编程的基本概念,对象的属性、事件和方法,以及描述对象本身属性的属性。它的格式是:对象名。属性=属性值。事件是指可以在对象上发生并被对象识别的动作。例如,当命令按钮被点击时,按钮的“点击”事件将被生成。当一个事件发生在一个对象上时,系统将被驱动执行一个对应于该事件的预编程程序。方法是系统预先设计的一个特殊过程,它可以完成一定的操作,是附加在对象上的行为和动作。需要时可以直接调用。调用格式是:对象名和方法名。除了数据库中的七个对象之外,Access还提供了一个重要的对象:除了表单和控件的SetFocus方法之外,DoCmd对象的一些方法是最常用的。通过这些方法,您可以在VBA运行Acces
3、s的操作。打开员工表单DoCmd。打开表单员工从文档中选择员工。选择对象交流表单,员工,真并关闭员工表单文档。在数据库窗口中关闭acForm,“雇员”。AcSaveYes删除“雇员”表docmd。删除数据库中的对象雇员,这是docmd对象的一种常见方法(参见教科书第P190页)。示例8-1:创建一个新表单并添加两个命令按钮。运行表单后,单击第一个按钮创建新的消息框;单击第二个按钮退出当前表单。(参考教材P191页),通过这个例子,我们可以了解可视化编程、面向对象、事件处理和应用方法的基本概念。进入VBE编程环境VBE窗口组成VBE窗口由工具栏、项目浏览器窗口、属性窗口、代码窗口和即时窗口组成。
4、在VBE环境、8-1-3 VBA编程环境、标准工具栏、查看微软访问按钮:切换访问2000窗口插入按钮:插入模块或进程运行子进程/用户表单按钮:运行模块中的程序中断按钮:中断运行程序重置按钮:结束运行程序设置模式按钮:在设计模式和非设计模式之间切换;项目资源管理器按钮:用于打开项目资源管理器属性窗口按钮:用于打开属性窗口对象浏览器按钮:用于打开对象浏览器,VBE编程环境,8-2-1常量和变量,8-2 VBA编程基础,常量:程序运行时。变量:它的值可以在程序运行期间改变。VBA使用常量和变量来存储值。用于在程序运行期间保存数据。常量在程序运行过程中其值不变的量称为常量。VBA有三种常数:直接常数如
5、:10,20%,123.0,“AB”,“VBA规划”等符号常数。系统常数指的是由VBA系统预定义并由用户直接引用的量。例如acForm、acQuery、vbOk、vbRed、程序中的符号常量,如果一个常量被多次使用,可以用一个符号代替该常量,这不仅方便了编写,而且有效地提高了程序的可读性和可维护性。在VBA,符号常量是通过使用关键字const来声明的。格式如下:常量名称类型符号=常量表达式,例如:常量PI#=3.1415926、变量是内存中的临时单元,存储程序执行过程中产生的中间结果和最终输出结果。在程序中使用变量时,有必要定义其名称和类型,即声明它。变量、变量命名规则变量名称必须以字母或汉字
6、开头,然后可以由字母、汉字、数字或下划线(无小数点或空格)组成,且长度不超过255个字符;您不能在VBA使用关键词;VBA不区分变量名的大小写;变量名的最后一个字符可以是%,Sum End Sub,良好的编程习惯应该是“先声明变量,再使用变量”,这样可以提高程序的效率,使程序易于调试。显式声明可以在VBA强制执行,诸如Option Explicit、和声明但未赋值的变量等语句可以添加到表单模块、标准模块和类模块的一般声明段中。数值变量的值被初始化为0;字符变量是零长度字符串;变量变量被初始化为空。初始化变量,8-2-3运算符和表达式(课本P199页),运算符算术运算符,如:123 456结果1
7、23 456 123j;第二周期I=;下一步后,打印退出循环;I End Sub normal条件:i=1,3,5,7,9,11,13,15,17,19现在:i=4,9,14,19,doLop循环语句(用于控制循环数未知)形式1: do while |直到语句块退出do语句块循环,形式2: do语句块退出Do语句块循环while |直到,DoLop语句(循环结构),do while循环语句do while循环语句Do While循环语句Do循环直到语句,I=1 do而I=10s=1可以不执行一次循环,修改循环控制变量,改变相加值,执行循环,当i=10保持时,I=1do s=s I=i1loop
8、,当I=10保持时,循环变量I必须具有初始值以防止无限循环的产生,修改循环控制变量,改变相加值,执行直到循环,I=1do直到i10s=s I=i1loop当i10保持时,结束执行循环的循环变量I必须具有初始值以防止无限循环的产生。不可能只执行一次循环。修改循环控制变量并改变相加值,循环直到,I=1do s=s I=i1loop直到i10。当i10成立时,结束执行循环的循环变量I必须具有初始值,以防止无限循环的产生,并至少执行一次循环。修改循环控制变量并更改添加值。加:WhileWend语句的格式如下:While Wend说明:此语句的功能与dowhile.loop实现的循环完全相同。循环语句有
9、三种,即For和DoLoop,它们都有重复一系列语句(循环体)的共同特点,但不同的是控制重复次数的时机和方法不同。参考P206-P214页的例子,掌握程序的控制结构。数组数组不是一种数据类型,而是一组相同类型的变量。您可以像使用普通变量一样使用数组中的每个元素。使用数组的优点是用一个数组名来表示一批逻辑上相关的数据,用下标来表示数组中的每个元素,这样可以提高数据处理的效率,缩短和简化程序。数组不是一种数据类型,而是一组相同类型的变量。数组必须在使用前声明。两种类型的数组:静态(固定长度)数组和动态(可变长度)数组1。一维数组定义一维数组的形式:dim数组名称(下限到上限)类型声明数组的名称、维
10、度、大小和类型,8-5-1数组定义,表示数组名称的命名规则与变量的命名规则相同。数组中的元素数:上限-下限1。默认值为0。如果希望下标从1开始,可以在模块的常规部分使用Option Base语句将其设置为1。使用格式为:选项基0|1后的参数只能取0或1。例如,Option Base 1将数组声明中的默认下标设置为1下限,并且不能使用变量,变量必须是常量,可以是直接常量、符号常量和一般的整数常量。如果省略了As子句,则数组是变量类型。数组中的每个元素在内存中占据一个连续的存储空间,一维数组在内存中的存储顺序是下标大小的顺序。示例:Dim标记(1到100)为整数,示例:Dim a(-1到3)为整数
11、声明一维数组a,它包含五个整数元素a(-1)、a(0)、a(1)、a(2)和a(3);定义静态数组时,每个维度中的元素数量必须是常数,而不是变量或表达式。例如:声明错误,下标变量Dim x(n)或:n=InputBox(“Input n”)Dim x(n)为单个,注意:数组声明中的下标描述了整个数组,即每个维度的大小;而出现在程序其他地方的下标代表数组中的一个元素。它们是用同样的形式写的,但是有不同的意思。例如:Dim x(10)为整数x(10)=100,这意味着数组x被声明,并且有11个数组元素。将值赋给数组元素x(10)以定义二维数组的形式:数组名称(下限1到上限1,下限2到上限2)作为类
12、型,例如:将a (2,3)作为数组a的元素按以下顺序存储在内存中:a (0,0) a (0,1) a (0,2) a (0,3) a (1,0) a (1,1) a (1,2) a (1,3) a (2,0)a(1,3)。0到4) As Long有45个元素,相当于: dim l数组(3,4) As Long,而动态数组意味着在声明数组时没有给出数组的大小(省略了括号中的下标),所以当使用它时,可以随时通过ReDim语句再次指出数组的大小。其形式如下:ReDim数组名(下标,下标2)作为类型示例:私有Sub 1()Dim x()作为单个n=input box(“input n”n”)ReDim
13、 x(n)End Sub,3,3。动态数组,描述:dim、Static和Public声明语句是解释性语句,可以出现在过程或一般声明段中;ReDim语句是一个执行语句,只能出现在一个过程中;在这个过程中,可以多次使用ReDim来改变数组元素的数量。ReDim中的下标可以是常量,也可以是有确定值的变量。例如,n=InputBox(“输入n的值”)ReDim Arr(n)静态数组在程序编译时分配存储单元,动态数组在运行时分配存储单元。以数组名称(下标)的形式对一维数组元素的引用,其中下标可以是常数、整数变量或表达式。例如,对于以下整数形式的数组A(10)和B(10),下列语句是正确的。A(1)=B(
14、2) B(1) 5取数组元素操作A(i)=B(i)下标使用变量A(i 2)=B(i 1)下标使用表达式注意:引用数组时,下标不能越界,8-5-2数组的基本操作,1。数组元素的引用,引用二维数组的形式:数组名例如:a(1,2)=10 a(i 2,j)a(2,3)*2二维数组元素通常由程序中的双循环操作。数组引用示例:通过循环到数组元素的初始值对于i=1至10 A,数组的每个元素值为1 A(i)=1数组的下一个I输入(通过InputBox()函数),对于I=1至4,对于j=1至5 sc(i,j)=inputbox(输入sc(i,j的值)下一个j下一个I,2。数组元素的输入。用户定义的数据类型也称为
15、记录数据类型,当基本数据类型不能满足实际需要时,用户根据基于基本数据类型的特定语法规则定义的数据类型称为记录数据类型。用户定义类型类型的定义用户定义类型名称元素名称(下标)作为类型名称元素名称(下标)作为类型名称结束类型,8-5-3用户定义数据类型,类型名称:标准类型元素名称:表示用户定义类型中的成员下标:表示数组,例如, 以下内容定义了用户定义的学生信息类型:键入学生编号作为整数学生编号名称作为字符串* 20名称性别作为字符串* 1性别标记(1到4)作为单个4课程总计作为单个总计结束类型,声明和使用自定义类型变量Dim变量名称的声明形式作为自定义类型名称示例:Dim学生作为学生引用形式:变量名称。 元素名称示例:指示学生变量中的名称。第四门课的成绩:学生。Name=张三学生。mark (4)=70,8-6-1在VBA执行宏。在VBA代码中,创建的宏可以通过使用DoCmd对象的RunMacro方法来执行。格式:DoCmd。运行宏宏宏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户需求分析工具市场调研数据驱动型
- 重点项目生态保护措施推进责任书范文9篇
- 资源节约型企业承诺书6篇
- 财务报告生成器及财务分析工具集
- 高级外语教师跨文化交际能力培养指导书
- 山东省海阳市美宝校2026年中考押题卷英语试题含解析
- 陕西省延安市实验中学2026年初三3月月考数学试题(解析版)含解析
- 食品企业烘焙食品保质期确定设计方案、实施方案及管理制度
- 云南省迪庆市级名校2026届初三下学期摸底测试物理试题含解析
- 稳健发展保障责任承诺书(3篇)
- 2025版建筑行业简易采购合同模板下载
- 意识形态工作培训课件
- 中药热奄包课件
- 《自动控制理论》课件-第二章 控制系统的数学模型
- 药事管理与法规(第2版)课件 第二章 药品监督管理体制与法律体系
- 肾球门血管病健康宣教
- 空间叙事与设计
- 校内超市人员管理办法
- 征兵理论考试试题及答案
- 中医四诊在护理中的应用
- 生物竞赛介绍课件
评论
0/150
提交评论