《数据库实用教程模块和VBA程序设计学习教案.pptx》由会员分享,可在线阅读,更多相关《数据库实用教程模块和VBA程序设计学习教案.pptx(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1数据库实用教程模块数据库实用教程模块(m kui)和和VBA程序程序设计设计第一页,共78页。9.1 VBA程序设计程序设计(chn x sh j)初步初步 n n 在Office中包含有Visual Basic for Application(VBA),它是Visual Basic的语言(yyn)的一个子集,与Visual Basic具有相同的语言(yyn)的功能。第1页/共78页第二页,共78页。9.1.1 面向对象编程面向对象编程n n 程程程程序序序序设设设设计计计计语语语语言言言言(y(y yn)yn)主主主主要要要要分分分分为为为为面面面面向向向向对对对对象象象象和和和和面
2、面面面向向向向过过过过程程程程两两两两大大大大类类类类,而而而而VBAVBA就就就就是是是是一一一一种种种种面面面面向向向向对对对对象象象象的的的的程程程程序序序序设设设设计计计计语语语语言言言言(y(y yn)yn),对对对对象象象象是是是是Visual Visual BasicBasic程程程程序序序序设设设设计计计计语语语语言言言言(y(y yn)yn)的的的的核核核核心心心心,而而而而AccessAccess更更更更是是是是基基基基于于于于对对对对象象象象的的的的,对对对对象象象象在在在在数数数数据据据据库库库库编编编编程程程程中中中中无无无无处处处处不不不不在在在在:窗窗窗窗体体体体
3、、报报报报表表表表、数数数数据据据据页页页页甚甚甚甚至至至至数数数数据据据据库库库库本本本本身,都是一种对象。身,都是一种对象。身,都是一种对象。身,都是一种对象。n n 在在在在AccessAccess中中中中,常常常常用用用用对对对对象象象象有有有有2323个个个个,它它它它们们们们之之之之间间间间多多多多为为为为树树树树形形形形关关关关系系系系,根根根根据据据据它它它它们的相对关系,可分为根对象和非根对象两大类,其介绍如下。们的相对关系,可分为根对象和非根对象两大类,其介绍如下。们的相对关系,可分为根对象和非根对象两大类,其介绍如下。们的相对关系,可分为根对象和非根对象两大类,其介绍如下
4、。第2页/共78页第三页,共78页。第3页/共78页第四页,共78页。第4页/共78页第五页,共78页。n n 在VBA中,对象是封装数据和相应代码的客体,是代码和数据的结合,使用对象可更方便地管理数据和代码。对象具有属性(shxng)、方法和事件。第5页/共78页第六页,共78页。n n1属性n n 属性是对象的一个特征,它定义了对象的大小、颜色(yns)等特征。根据对象的类别不同,其属性也有所不同,而同一对象的不同实例属性构成也可能有所不同。我们可以通过修改对象的属性值来改变对性的特征。第6页/共78页第七页,共78页。n n2方法n n 方法是对象能够执行的一个操作,是与对象相关联的过程
5、和函数。不同的对象拥有不同的方法集合。例如(lr)窗体具有GoToPage方法,而其他对象则不具备此方法。第7页/共78页第八页,共78页。n n3 3事件事件n n Access Access事件是指操作事件是指操作AccessAccess的某个数据对象时发生的特定情况,的某个数据对象时发生的特定情况,是对象可以识别的动作。可以通过两种方式处理事件响应:一是是对象可以识别的动作。可以通过两种方式处理事件响应:一是使用宏对象来设置事件属性,二是为某个事件编写使用宏对象来设置事件属性,二是为某个事件编写VBAVBA代码完成代码完成动作,这样动作,这样(zhyng)(zhyng)的代码称为事件过程
6、。的代码称为事件过程。n n在在AccessAccess中,事件可分为焦点、鼠标、键盘、窗体、打印、数据、中,事件可分为焦点、鼠标、键盘、窗体、打印、数据、筛选和系统环境事件八大类。筛选和系统环境事件八大类。第8页/共78页第九页,共78页。n n Access为每个事件都定义了一个相对应的属性,属性名为“On”+事件名。如GotFocus的属性名为OnGotFocus。每个对象的所有事件属性在对象属性对话框的“事件”选项卡中均能找到,为事件属性指定值即为该事件定义了相应的响应操作。在Access中,事件的响应分为(fn wi)两种类型:宏响应和事件响应。第9页/共78页第十页,共78页。9.
7、1.2 VBA简介简介(jin ji)n n VBA VBA(Visual Basic for applicationVisual Basic for application)是)是AccessAccess的开发语言,其语法的开发语言,其语法与与Visual BasicVisual Basic编程语言相互间融,通过它可以像编写编程语言相互间融,通过它可以像编写VBVB语言一样语言一样来编写来编写VBAVBA程序。概括地说,程序。概括地说,VBAVBA有以下一些特点:有以下一些特点:n n1 1操作简单操作简单n n Access Access为为VBAVBA提供了一个典型的提供了一个典型的Wi
8、nowsWinows风格的集成开发环境风格的集成开发环境VBEVBE,通过它上面的菜单、工具和各种子窗口,用户可以方便,通过它上面的菜单、工具和各种子窗口,用户可以方便(fngbin)(fngbin)地编译、调试和运行程序。地编译、调试和运行程序。n n2 2面向对象面向对象n n VBA VBA是面向对象的,这是它也传统编程语言的重要区别。是面向对象的,这是它也传统编程语言的重要区别。n n3 3事件驱动事件驱动n n VBA VBA用事件驱动程序,即当某个控件或对象相关的事件发生时,用事件驱动程序,即当某个控件或对象相关的事件发生时,会自动启动相应得程序。会自动启动相应得程序。第10页/共
9、78页第十一页,共78页。9.1.3 VBA编程环境编程环境(hunjng)n n Access所提供(tgng)的VBA开发界面成为VBE(Visual Basic Editor,VB编辑器),它为VBA程序的开发提供(tgng)了完整的开发和调试工具。第11页/共78页第十二页,共78页。n n1进入VBEn n 由于Access模块(m kui)分为类模块(m kui)和标准模块(m kui)(详见9.2.1),进入VBE的方式也有所不同。n n对于类模块(m kui)有两种方式:n n(1)单击属性窗体的“事件”选项卡,选中某个事件并将其属性设置其为“事件过程”,再单击属性栏右侧的“.
10、”按钮,即可进入。第12页/共78页第十三页,共78页。n n(2)在属性(shxng)窗体的“事件”选项卡下,直接单击时间属性(shxng)栏右侧的“.”按钮,打开如图9-2所示的“选择生成器”对话框,选择“代码生成器”,单击确定即可进入。第13页/共78页第十四页,共78页。n n对于标准模块,有三种进入方式:n n(1)模块已经存在时,在数据库的“模块”窗口下,双击已存在的模块对象即可进入。n n(2)新建模块时,在数据库的“模块”窗口下,单击工作(gngzu)栏上的“新建”按钮即可进入。n n(3)在数据库对象窗体中,单击“工具”菜单中的“宏”级联菜单的“Visal Basic编辑器”
11、选项即可进入。第14页/共78页第十五页,共78页。n n2 2VBEVBE窗口窗口(chungk(chungk u)u)n n VBE VBE窗口窗口(chungk(chungk u)u)可分为标准工具栏、工程窗口可分为标准工具栏、工程窗口(chungk(chungk u)u)、属性窗口、属性窗口(chungk(chungk u)u)和代码窗口和代码窗口(chungk(chungk u)4u)4部分,如图部分,如图9-39-3所示。所示。第15页/共78页第十六页,共78页。n n 另外,还有对象窗口、对象浏览器、立即窗口、本地窗口和监视窗口等,可以通过(tnggu)“视图”菜单的相应选项选
12、择显示。第16页/共78页第十七页,共78页。n n1 1标准标准(biozh(biozh n)n)工具栏工具栏n n标准标准(biozh(biozh n)n)工具栏中包括创建模块时常用的命令按工具栏中包括创建模块时常用的命令按钮,可通过选中或撤消钮,可通过选中或撤消“视图视图”菜单中菜单中“工具栏工具栏”菜单中菜单中的的“标准标准(biozh(biozh n)”n)”按钮来确定显示还是隐藏标准按钮来确定显示还是隐藏标准(biozh(biozh n)n)工具栏。标准工具栏。标准(biozh(biozh n)n)工具栏及其上按钮工具栏及其上按钮如图如图9-49-4所示。所示。第17页/共78页第
13、十八页,共78页。n n2工程(gngchng)窗口n n 工程(gngchng)窗口又叫工程(gngchng)资源管理器窗口,用于显示应用程序中用到的模块文件列表。通过它可以控制代码窗口、对象窗口以及对象文件夹的显示。n n 双击工程(gngchng)窗口上的模块或类,相应的代码就会在代码窗口中显示出来。第18页/共78页第十九页,共78页。n n3属性窗口n n 用于显示所选对象(duxing)的属性,可“按字母序”和“按分类序”查看并编辑这些对象(duxing)的属性,这种修改对象(duxing)属性的方法属于“静态”设置方法。还可以在代码窗口中使用VBA代码编辑对象(duxing)的属
14、性,这种方法属于“动态”设置方法。第19页/共78页第二十页,共78页。n n4代码窗口n n 用于输入和编辑VBA代码。用户可以打开多个代码窗口用来查看各个模块(m kui)的代码。在代码窗口中,关键字和普通代码的颜色是不同的,可以很容易地区分。第20页/共78页第二十一页,共78页。9.2 模块模块(m kui)概述概述n n 模块以VBA语言为基础,由声明和过程(guchng)两部分组成。第21页/共78页第二十二页,共78页。9.2.1 模块模块(m kui)的分类的分类 n n Access 2003有两个模块类型:类模块和标准模块。n n1类模块n n 类模块是与某一特定窗体或报表
15、相关联的过程集合。它属于Access数据库对象,即新建一个(y)类模块救创建一个(y)新对象。类模块主要包括窗体模块和报表模块和自定义模块,其中窗体模块和报表模块从属于各自的窗体或报表。第22页/共78页第二十三页,共78页。n n2标准模块n n 标准模块即数据库中的可用函数模块和子程序,只包含通用(tngyng)只一些通用(tngyng)过程和常用过程,并不与任何对象相关联,通常用来存放供其他Access数据库对象使用的公共过程。第23页/共78页第二十四页,共78页。n n3 3类模块和标准类模块和标准(biozh(biozh n)n)模块的区别模块的区别n n 这两种模块的主要区别在于
16、其存储方式和生命周期不同。这两种模块的主要区别在于其存储方式和生命周期不同。n n 类模块的数据由类实例创建,独立于应用程序。标准类模块的数据由类实例创建,独立于应用程序。标准(biozh(biozh n)n)模块只有一个备份,因此当其中的公共变量发生模块只有一个备份,因此当其中的公共变量发生变化时,其后的程序再读取该变量时,得到的是变量变化变化时,其后的程序再读取该变量时,得到的是变量变化后的值。后的值。n n 类模块的作用域是类实例对象的存活期,其中的声明或类模块的作用域是类实例对象的存活期,其中的声明或存在的任何变量或常量的值,都仅在该代码运行时有效。存在的任何变量或常量的值,都仅在该代
17、码运行时有效。而标准而标准(biozh(biozh n)n)模块的变量在声明为模块的变量在声明为PublicPublic时,在工程的时,在工程的任何地方都可见。任何地方都可见。第24页/共78页第二十五页,共78页。9.1.2 模块模块(m kui)和过程和过程 n n 模块由若干过程组成。过程是VBA程序(chngx)代码的容器,是程序(chngx)中的若干较小的逻辑部件,可分为子程序(chngx)和函数过程,每种过程都有其独特的功能。过程可以简化程序(chngx)设计任务,还可以增强或扩展Visual Basic的构件。另外,过程还可用于共享任务或压缩重复任务,如减少频繁运算等。第25页/
18、共78页第二十六页,共78页。n n1 1子过程子过程n n 子过程是由子过程是由SubSub和和End SubEnd Sub语句包含语句包含(bohn)(bohn)起来的起来的VBAVBA语句其格语句其格式如下:式如下:n nPrivate|Public|Friend Sub Private|Public|Friend Sub 子过程名(参数列表)子过程名(参数列表)n n n nExit SubExit Subn n n nEnd SubEnd Sub第26页/共78页第二十七页,共78页。n n2 2函数过程函数过程n n 函数过程是由函数过程是由FunctionFunction和和En
19、d FunctionEnd Function语句包含起来语句包含起来(q(q li)li)的的VBAVBA语语句,其格式如下:句,其格式如下:n nPrivate|PublicStaticFunction Private|PublicStaticFunction 函数名(参数行)函数名(参数行)As As 数据类型数据类型 n n n nExit FunctionExit Functionn n n nEnd FunctionEnd Function第27页/共78页第二十八页,共78页。9.3 创建创建(chungjin)模块模块第28页/共78页第二十九页,共78页。9.3.1 创建创建(
20、chungjin)新模块新模块n n1创建标准模块n n 打开数据库,单击数据库窗口左边对象列表(li bio)中的“模块”选项,然后单击工具栏上的“新建按钮”,即“Visual Basic编辑器”,显示模块设计视图并创建空白标准模块,或单击“Visual Basic编辑器”菜单栏中“插入”按钮,在弹出的下拉列表(li bio)中选择“模块”选项,也会出现一个空白的标准模块,如图9-5所示。此时在代码窗口即可进行编辑。第29页/共78页第三十页,共78页。第30页/共78页第三十一页,共78页。n n2创建类模块n n 类模块可根据与窗体、报表的相关性分为与窗体报表相关的类模块和与窗体报表不相
21、关的类模块。n n 创建与窗体或报表相关的类模块过程如下:n n 双击工程窗口中的窗体名称,然后在弹出的新建模块代码(di m)窗口中输入代码(di m)即可,如图9-6所示。第31页/共78页第三十二页,共78页。第32页/共78页第三十三页,共78页。n n 创建与窗体或报表不相关的类模块步骤如下:创建与窗体或报表不相关的类模块步骤如下:n n 单击单击“数据库数据库”窗口或窗口或“Visual Basic“Visual Basic编辑器编辑器”的菜单栏上的菜单栏上“插入插入”,在弹出下拉列表中选择,在弹出下拉列表中选择“类模块类模块”,即可在,即可在“Visual Basic“Visua
22、l Basic编辑器编辑器”中看到一个空白的类模块。将所需的中看到一个空白的类模块。将所需的声明或过程添加到类模块设计视图中,进行保存即可。声明或过程添加到类模块设计视图中,进行保存即可。n n 设计的类模块可以作为新类型来创建用户自定对象,类中设计的类模块可以作为新类型来创建用户自定对象,类中定义的变量为对象的属性,子过程和函数则将成为对象的方定义的变量为对象的属性,子过程和函数则将成为对象的方法法(fngf(fngf)。可以通过对象来引用其属性和方法。可以通过对象来引用其属性和方法(fngf(fngf)。第33页/共78页第三十四页,共78页。9.3.2 将宏转换将宏转换(zhunhun)
23、为模为模块块n n 将窗体或报表上的宏转换为VBA代码的方法如下:n n(1)使用“设计(shj)”视图的模式打开窗体或报表。n n(2)单击菜单栏上的“工具”按钮,在弹出下拉列表中选择“宏”命令,然后选择“将窗体(报表)的宏转换为Visual Basic代码”。n n(3)在弹出的“转换宏”对话框中,选择所需项,单击“转换”按钮即可。第34页/共78页第三十五页,共78页。n n 将全局宏转换为将全局宏转换为VBAVBA代码的方法如下代码的方法如下(rxi)(rxi):n n(1 1)在)在“数据库数据库”窗口中,单击左侧对象列表中的窗口中,单击左侧对象列表中的“宏宏”对象按对象按钮,在宏对
24、象列表框中选择要转换的宏名。钮,在宏对象列表框中选择要转换的宏名。n n(2 2)执行菜单命令)执行菜单命令“文件文件”“”“另存为另存为”,然后在,然后在“另存为另存为”对对话框中输入保存的文件名,在话框中输入保存的文件名,在“保存类型保存类型”中选择中选择“模块模块”,结,结束单击束单击“确定确定”。n n(3 3)在弹出的)在弹出的“转换宏转换宏”对话框中,选择所需选项,单击对话框中,选择所需选项,单击“转换转换”按钮。按钮。第35页/共78页第三十六页,共78页。9.4 VBA编程基础编程基础(jch)n n VBA是Visual Basic语言的一个子集,集成了整个Office产品套
25、件中的开发语言和开发环境,是Office产品系列(xli)中的重要组成部分。第36页/共78页第三十七页,共78页。9.4.1 数据类型数据类型n n 在创建表对象的时候,我们已经接触过数据类型了。数据类型实际上就是指具有相同特征数据对象的集合,包括相同的取值集合和可对其实行的操作。VBA提供了丰富(fngf)的数据类型,常用数据类型如表9-2所示。第37页/共78页第三十八页,共78页。第38页/共78页第三十九页,共78页。第39页/共78页第四十页,共78页。第40页/共78页第四十一页,共78页。9.4.2 常量常量(chngling)n n VBA的常量包括数值常量、字符常量、符号常
26、量、固有常量和系统定义常量五种。n n1数值常量n n 数值常量即我们常说的常数,相当于数据类型中的整型、小数(xiosh)型和浮点型。n n2字符常量n n 字符常量是由字符串定界符双引号(”)括起来的一串字符。第41页/共78页第四十二页,共78页。n n3符号常量(chngling)n n 对于程序中经常出现以及难以记忆的数值,可以表示为符号常量(chngling),以便增加程序的可读性和可维护性。一般使用Const语句来声明一个符号常量(chngling),其格式如下:n nConst 常量(chngling)名As 类型名表达式第42页/共78页第四十三页,共78页。n n4 4固有
27、常量固有常量n n 固有常量是固有常量是AccessAccess或引用库的一部分,代表固定系统值所有固有常量均或引用库的一部分,代表固定系统值所有固有常量均可在宏或可在宏或VBAVBA代码代码(di m(di m)中使用。中使用。n n 固有常量的类型有:操作常量、固有常量的类型有:操作常量、ADOADO常量、常量、DAODAO常量、事件过程常量、常量、事件过程常量、键盘代码键盘代码(di m(di m)常量、其他类型常量、常量、其他类型常量、RunCommandRunCommand方法常量、安全性方法常量、安全性常量、常量、VBAVBA常量和常量和VarTypeVarType函数常量等。通常
28、,固有常量通过前两个字母函数常量等。通常,固有常量通过前两个字母来指明定义该常量的对象库。来自来指明定义该常量的对象库。来自Microsoft AccessMicrosoft Access库的常量以库的常量以“ac”“ac”开头,开头,来自来自ActiveX Data ObjectsActiveX Data Objects(ADOADO)库的常量以)库的常量以“ad”“ad”开头,而来自开头,而来自VBVB库的库的常量以常量以“vb”“vb”开头。开头。第43页/共78页第四十四页,共78页。n n5系统常量n n Access和VBA有3个系统常量:True、False和Null。True和
29、False是系统定义的逻辑值,而Null用于指明字段中数据没有或未知值。系统常量可以用在所有应用程序中。n n注意:n n 不能借用系统常量名称作为其他(qt)对象的名称,否则会出现如下错误:“编译错误:缺少:标志符”。第44页/共78页第四十五页,共78页。9.4.3 变量变量(binling)n n 变量是指程序运行过程中,其值可以发生变化的量。变量可以是任意(rny)VBA所支持的数据类型。n n 变量由变量名标识,其命名规则是:以字母或字符开头,不超过255个字符的字符串。使用变量可以增加程序代码的可读性和可维护性。第45页/共78页第四十六页,共78页。n n1 1对简单变量的声明对
30、简单变量的声明n n 对简单变量的声明可以使用对简单变量的声明可以使用(sh(sh yng)yng)类型说明符、类型说明符、DimDim语句和语句和DefTypeDefType语句。语句。n n1 1)使用)使用(sh(sh yng)yng)类型说明符类型说明符n n 使用使用(sh(sh yng)yng)类型说明符声明变量时,将其放在说明变量的最后。类型说明符声明变量时,将其放在说明变量的最后。n n2 2)使用)使用(sh(sh yng)Dimyng)Dim语句声明语句声明n n 可以使用可以使用(sh(sh yng)Dimyng)Dim语句声明一个或多个变量,其格式如下:语句声明一个或多
31、个变量,其格式如下:n nDim Dim 变量名变量名 As As 数据类型数据类型 第46页/共78页第四十七页,共78页。n n3)使用DefType语句n n DefType语句主要用于模块级通用声明部分,一般用来声明变量或传送(chun sn)给过程的参数的数据类型,或用来声明指定字符开头的Function或Property Get过程的返回值类型。n n DefType语句格式如下:n nDefType 字母,字母范围第47页/共78页第四十八页,共78页。n n2数组n n 数组是在有规则的结构中包含一种数据类型的一组数据,也称数组元素变量。数组中的元素数据类型相同而且连续可索引,
32、并且每个元素具有唯一的索引号,更改其中的一个元素不影响(yngxing)其他元素。数组元素变量由数组名和数组下标组成,其中数组名标志数组元素变量位于同一个数组,下标为索引号,用于标志同一数组中不同的数组元素。第48页/共78页第四十九页,共78页。9.4.4 表达式表达式 n n 表达式是由关键字、运算符、常量、变量、函数、字段名、控件和属性等组合而成的,用来执行运算、操作字符(z f)或测试数据。n n 在Access中,表达式无处不再,大体可分为5种形式:算术表达式、字符(z f)串表达式、关系表达式、布尔表达式和对象运算表达式。第49页/共78页第五十页,共78页。n n1算术表达式n
33、n 算术表达式也称数值表达式或数学表达式,是由算术运算符连接数值型常量、变量、函数以及(yj)各种对象属性而形成的运算式。第50页/共78页第五十一页,共78页。n n 将Access种的算术运算符按其优先顺序(shnx)由高到低排列如表9-5所示。第51页/共78页第五十二页,共78页。n n2字符串表达式n n 字符串表达式由字符串运算符连接(linji)而成,用于完成字符串的连接(linji)运算。字符串运算符又称字符串连接(linji)运算符,主要包括3种,如表9-6所示。第52页/共78页第五十三页,共78页。第53页/共78页第五十四页,共78页。n n3关系表达式n n 关系表达
34、式是由关系运算符组成的表达式,其结果是一个逻辑值,即真(True)或假(False)。关系运算符又称比较运算符或条件运算符,可用于任意(rny)数据类型数据的比较(但运算符两边的操作数据的数据类型必须一样)。n n 比较运算符如表9-7所示 第54页/共78页第五十五页,共78页。第55页/共78页第五十六页,共78页。n n4布尔表达式n n 布尔表达式又称逻辑(lu j)表达式,是由逻辑(lu j)运算符连接布尔逻辑(lu j)类型常量、变量、函数、表达式以及各种对象属性组合而成的运算式,根据逻辑(lu j)运算符两边的逻辑(lu j)值进行运算。其返回值为逻辑(lu j)值,主要用于条件
35、判断。n n 按优先级由高到低的顺序排列,逻辑(lu j)运算符如表9-8所示。第56页/共78页第五十七页,共78页。第57页/共78页第五十八页,共78页。n n5 5对象对象(duxing)(duxing)表达式表达式n n 对象对象(duxing)(duxing)表达式即引用对象表达式即引用对象(duxing)(duxing)或对象或对象(duxing)(duxing)属性的属性的表达式,其运算符主要有两种:表达式,其运算符主要有两种:“!”和和“.”“.”,其介绍如表,其介绍如表9-109-10所示。所示。第58页/共78页第五十九页,共78页。9.5 VBA程序流程程序流程控制控制
36、(kngzh)第59页/共78页第六十页,共78页。9.5.1 程序书写程序书写(shxi)规范规范 n n1 1语句书写规则语句书写规则n n (1 1)源程序不分大小写,英文字母的大小写是等)源程序不分大小写,英文字母的大小写是等价的(字符串除外)。但是为了提高程序的可读性,价的(字符串除外)。但是为了提高程序的可读性,VBAVBA编译器对不同的程序部分都有默认的书写规则,编译器对不同的程序部分都有默认的书写规则,当程序书写不符合这些规则时,编译器会自动进行转当程序书写不符合这些规则时,编译器会自动进行转换。例如,关键字默认首字母大写,其他字母小写。换。例如,关键字默认首字母大写,其他字母
37、小写。n n (2 2)通常一个语句写在一行,但一行最多允许)通常一个语句写在一行,但一行最多允许255255个字符。当语句较长,一行写不下时,可以用续行符个字符。当语句较长,一行写不下时,可以用续行符“_”“_”将语句连续写在下一行。将语句连续写在下一行。n n (3 3)如果一条语句输入完成,按回车后该行代码)如果一条语句输入完成,按回车后该行代码呈红色呈红色(hngs)(hngs),说明该行语句有错误,应及时修改。,说明该行语句有错误,应及时修改。第60页/共78页第六十一页,共78页。n n2 2添加注释添加注释n n 注释是为了提高程序的可读性而在程序需要解释的地方加入的标志性说明注
38、释是为了提高程序的可读性而在程序需要解释的地方加入的标志性说明语句。一个好的程序一般都有注释语句。语句。一个好的程序一般都有注释语句。n n 在在VBAVBA中,注释语句一般用单引号或中,注释语句一般用单引号或RemRem关键字作为起始符。单引号可以关键字作为起始符。单引号可以在在VBAVBA代码行的任何位置,此时代码行的任何位置,此时(c(c sh)VBA sh)VBA编译器会将单引号后面同一行的编译器会将单引号后面同一行的所有内容看成注释内容。使用所有内容看成注释内容。使用RemRem关键字引导注释语句时,关键字引导注释语句时,RemRem关键字必须关键字必须是注释语句的第一个词,即注释必
39、须单独成行。是注释语句的第一个词,即注释必须单独成行。第61页/共78页第六十二页,共78页。9.5.2 VBA程序结构类型程序结构类型(lixng)n n1 1顺序结构顺序结构n n 顺序结构是结构化程序设计中最常见的程序结构,它按代码从上到下顺序结构是结构化程序设计中最常见的程序结构,它按代码从上到下顺序依次执行关键字控制下的代码。顺序依次执行关键字控制下的代码。n n 另外,在顺序结构中可使用另外,在顺序结构中可使用WithEnd WithWithEnd With对同一对象执行一系列语对同一对象执行一系列语句,这些语句按顺序执行,并可省略对象名。该关键字的语法格式句,这些语句按顺序执行,
40、并可省略对象名。该关键字的语法格式(g(g shi)shi)如下所示。如下所示。n nWith With 对象名对象名n n Commands Commandsn nEnd WithEnd With第62页/共78页第六十三页,共78页。n n2选择结构n n 选择结构的程序根据条件式的值来选择程序运行的语句。主要(zhyo)有以下一些结构:第63页/共78页第六十四页,共78页。n n1)If语句(yj)n nIf 条件表达式1 Thenn n 条件表达式1为真时要执行的语句(yj)n nElse If 条件表达式2 Thenn n 条件表达式1为假,并且条件表达式2为真时要执行的语句(yj
41、)n nEnd If语句(yj)第64页/共78页第六十五页,共78页。n n2 2)Select CaseSelect Case语句语句n n Select Case Select Case语句是多分支选择语句,即可根据测试条件中表达式的语句是多分支选择语句,即可根据测试条件中表达式的值来决定执行几组语句中的依据。使用格式如下:值来决定执行几组语句中的依据。使用格式如下:n nSelect Case Select Case 表达式表达式n nCase Case 表达式表达式1 1n n 表达式的值与表达式表达式的值与表达式1 1的值相等的值相等(xingdng)(xingdng)时执行的语句
42、时执行的语句n nCase Case 表达式表达式2 2n n 表达式的值介于表达式表达式的值介于表达式2 2和表达式和表达式3 3之间时执行的语句之间时执行的语句n nCase ElseCase Elsen n 上述情况均不符合时执行的语句上述情况均不符合时执行的语句n nEnd SelectEnd Select第65页/共78页第六十六页,共78页。n n3 3)函数)函数n n 除了除了(ch le)(ch le)以上两种方式外,以上两种方式外,VBAVBA还提供了还提供了3 3个函数完成相应的操作。个函数完成相应的操作。n n IIf IIf函数函数n n IIf IIf函数的调用格式
43、如下:函数的调用格式如下:n n IIf IIf(条件式,表达式(条件式,表达式1 1,表达式,表达式2 2)n n 它的跳转由最左边的它的跳转由最左边的“条件式条件式”控制,当条件式为真(控制,当条件式为真(TrueTrue)时,函数)时,函数返回表达式返回表达式1 1的值;当条件式为假(的值;当条件式为假(FalseFalse)时,函数返回表达式)时,函数返回表达式2 2的值。的值。第66页/共78页第六十七页,共78页。n n Switch函数n n Switch函数的调用格式是:n n Switch(条件式1,表达式1,条件式2,表达式2,条件式n,表达式n)n n 该函数根据条件式1
44、至条件式n从左到右来决定函数返回值,表达式在第一个相关的条件式为True时作为函数返回值返回。条件式和表达式必须成对出现(chxin),否则会出错。第67页/共78页第六十八页,共78页。n n Chosse Chosse函数函数n n Chosse Chosse函数的调用格式如下函数的调用格式如下(rxi)(rxi):n n Chosse Chosse(索引式,选项(索引式,选项1 1,选项,选项2 2,选项,选项3 3,选项,选项nn)第68页/共78页第六十九页,共78页。n n3循环结构(jigu)n n 循环结构(jigu)使得若干语句重复执行若干次,实现重复性操作。在程序设计中,经
45、常需要用到循环控制。第69页/共78页第七十页,共78页。n n1 1)DoDo语句语句n n Do Do语句根据条件判断是否继续进行循环操作。用在事先不知道程序代码语句根据条件判断是否继续进行循环操作。用在事先不知道程序代码需要重复多少次的情况下。需要重复多少次的情况下。n n Do Do语句语法语句语法(y(y f f)格式主要有以下格式主要有以下4 4种:种:n n 格式一:格式一:n n Do While Do While 条件表达式条件表达式n n 语句组语句组1 1n n Exit Do Exit Don n 语句组语句组2 2n n Loop Loop第70页/共78页第七十一页
46、,共78页。n n格式二:n nDo Until 条件(tiojin)表达式n n 语句组1n nExit Don n 语句组2n nLoop第71页/共78页第七十二页,共78页。n n格式(g shi)三:n nDon n 语句组1n nExit Don n 语句组2n nLoop While 条件表达式第72页/共78页第七十三页,共78页。n n格式四:n nDon n 语句(yj)组1n nExit Don n 语句(yj)组2n nLoop Until 条件表达式第73页/共78页第七十四页,共78页。n n2 2)ForFor语句语句n n For For语句可以以指定次数来重复
47、执行一组语句,这是最常用的一种循环语句可以以指定次数来重复执行一组语句,这是最常用的一种循环控制结构。其语法结构如下控制结构。其语法结构如下(rxi)(rxi):n nFor For 循环体变量循环体变量=初值初值 ToTo 终值终值Step Step 步长步长 n n 语句组语句组1 1n nExit ForExit Forn n 语句组语句组2 2n nNextNext第74页/共78页第七十五页,共78页。9.5.3 程序程序(chngx)的调试的调试 n n1错误类型n n代码运行(ynxng)时,可能会产生3种类型的错误。n n1)编译错误n n2)运行(ynxng)错误n n3)逻辑错误第75页/共78页第七十六页,共78页。n n2 2调试工具调试工具n n 在在VBEVBE环境环境(hunjng)(hunjng)中,右键单击菜单栏空白处,在弹出的快捷菜中,右键单击菜单栏空白处,在弹出的快捷菜单中选择单中选择“调试调试”选项,打开选项,打开“调试调试”工具栏,如图工具栏,如图9-99-9所示。调试工具栏所示。调试工具栏上包含了多个常用调试工具。上包含了多个常用调试工具。第76页/共78页第七十七页,共78页。本章本章(bn zhn)结束结束第77页/共78页第七十八页,共78页。
限制150内