2022年模块知识点 .pdf

上传人:H****o 文档编号:33385184 上传时间:2022-08-10 格式:PDF 页数:14 大小:207.01KB
返回 下载 相关 举报
2022年模块知识点 .pdf_第1页
第1页 / 共14页
2022年模块知识点 .pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《2022年模块知识点 .pdf》由会员分享,可在线阅读,更多相关《2022年模块知识点 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 8 章模块与 VBA 编程基础8.1 模块的基本概念模块是 access系统中的一个重要对象,它以VBA( Visual Basic for Applications )为基础编写,以函数过程(Function)和子过程(Sub)为单元的集合方式存储。在 access 中,模块分为类模块和标准模块两种类型。8.1.1 类模块窗体和报表模块都是类模块,而且它们各自与某一窗体或报表相关联。窗体和报表模块通常都含有事件过程,该过程用于响应窗体或报表中的事件。可以使用事件过程来控制窗体或报表的行为,以及它们对用户操作的响应,例如:用鼠标单击某个命令按钮。为窗体或报表创建第一个事件过程时,Micro

2、soft Access将自动创建与之关联的窗体或报表模块。如果要查看窗体或报表的模块,请单击窗体或报表“ 设计 ” 视图中工具栏上的“ 代码” 命令。窗体或报表模块中的过程可以调用已经添加到标准模块中的过程。窗体和报表模块具有局部特性,其作用范围局限在所属窗体和报表内部,而生命周期则是伴随着窗体和报表的打开而开始,关闭而结束。8.1.2 标准模块标准模块一般用于存放供其他access数据库对象使用的公共过程。在系统中可以通过创建新的模块对象而进入其代码设计环境。标准模块通常安排一些公共变量或过程供类模块里的过程调用。在各个标准模块内部也可以定义私有变量和私有过程仅供本模块内部使用。标准模块中的

3、公共变量和公共过程具有局部特性,其作用范围在整个应用程序里,而生命周期则是伴随着应用程序的运行而开始,关闭而结束。8.1.3 将宏转换为模块在 Access系统中,根据需要可以将设计好的宏对象转换为模块代码的形式。8.2 创建模块过程是模块的组成单元,由VBA 代码编写而成。过程分两种类型:Sub 子过程和Function函数过程。8.2.1 在模块中加入过程模块是装着VBA 代码的容器。在窗体和报表的设计视图中,单击工具栏“ 代码 ” 按钮或者创建窗体和报表的事件过程可以加入类模块的设计和编辑窗口。单击数据库窗体中的“ 模块 ”对象标签,然后单击“ 新建 ” 按钮即可进入标准模块的设计和编辑

4、窗口。一个模块包含一个声明区域,且可以包含一个或多个子过程或函数过程。1、Sub 过程(子过程)执行一系列操作,无返回值。定义格式如下:Sub 过程名程序代码 End Sub 可以引用过程名来调用该子过程。此外,VBA 提供了一个关键字Call,可显示调用一个子过程。2、Function 过程(函数过程)执行一系列操作,有返回值。定义格式如下:Function 过程名As(返回值)类型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - -

5、 - 程序代码 End Function 函数过程不能使用Call 来调用执行,需要直接引用函数过程名,并直接在函数过程名后的括号所辨别。8.2.2 在模块中执行宏在模块的过程定义中,使用DoCmd 对象的 RunMacro 方法,可以执行设计好的宏。其调用格式为: DoCmd RunMacro MacroName ,RepeatCount ,RepeatExpression 其中 MacroName 表示当前数据库中宏的有效名称;RepeatCount 为可选项, 用于计算宏运行次数的整数值;RepeatExpression 也是可选项,为数组表达式,在每一次运行宏时进行计算,结果为Fals

6、e(0)时,停止运行宏。8.3 VBA 程序设计基础VBA 是 Microsoft Office 内置的编程语言, 是根据 Visual Basic 简化的宏语言, 其基本语法、词法与 Visual Basic 基本相同,因而具有简单、易学的特点。与 Visual Basic不同的是, VBA 不是一个独立的开发工具,一般被嵌入到像Word 、Excel、Access这样的软件中,与其配套使用,从而实现在其中的程序开发功能。8.3.1 面向对象程序设计的概念1对象和集合对象:在采用面向对象程序设计方法的程序中,程序处理的目标被抽象成了一个个对象,每个对象具有各自的属性、方法和事件。类:是对一类

7、相似对象的定义和描述。因此类可看做是对象的模板,每个对象由类来定义。集合:是由一组对象组成的集合,这些对象的类型可以相同,也可以不同。Access 有几十个对象,其中包括对象和对象集合。所有对象和对象集合按层次结构组织,处在最上层的是Application 对象,即 Access应用程序, 其他对象或对象集合都处在它的下层或更下层。2属性和方法对象的特征用属性和方法描述。属性:用来表示对象的状态,如窗体的Name(名称)属性、Caption (标题)属性等。方法:用来描述对象的行为,如窗体有Refresh 方法, Debug 对象有 Print 方法等。引用对象的属性或方法时应该在属性名或方法

8、名前加对象名,并用对象引用符“. ”连接,即对象 .属性或对象 .行为例如DoCmd.OpenReport “ 教师信息 “是指利用DoCmd 对象的 OpenReport 方法打开报表 “ 教师信息 ”3事件和事件过程事件:是对象可以识别的动作,通常由系统预先定义事件过程:对象在识别了所发生的事件后执行的程序例如,下面的事件过程描述了单击按钮之后所发生的一系列动作。Private Sub Command1_Click() Me!Label1.Caption = “合肥领航教育 Me!Text1 = End Sub 8.3.2 VBA 编程环境一、Visual Basic 编辑器(详见书本P2

9、02)Visual Basic 编辑器 VBE(Visual Basic Editor )是编辑 VBA 代码时使用的界面。VBE 窗名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 口主要由标准工具栏、工具窗口、属性窗口、代码窗口和立即窗口等组成。二、进入VBA 编程环境Access模块分成类模块和标准模块两种。对于类模块,可以直接定位到窗体或报表,然后单击工具栏上的“ 代码 ” 按钮进入;或定位到窗体、报表和控件上通过指定对

10、象事件处理过程进入。其方法有两种:(1) 右键单击控件对象,单击快捷菜单上的“ 事件生成器命令” , 打开 “ 事件生成器 ” 对话框,选择其中的 “ 代码生成器 ” ,单击“ 确定” 按钮即可进入;(2)单击属性窗口的“ 事件” 选项卡, 选中某个事件直接单击属性右侧的“” 按钮, 打开“ 事件生成器 ” 对话框,选择其中的“ 代码生成器 ” ,单击 “ 确定 ” 按钮即可进入。对于标准模块,有3 种方法进入:(1)对于已存在的标准模块,只需从数据库窗体对象列表上选择“ 模块 ” ,双击要查看的模块对象即可进入;(2)要创建新的标准模块,需要从数据库窗体对象列表上选择“ 模块 ” ,单击工具

11、栏上的“ 新建” 按钮即可进入;(3)在数据库对象窗体中,选择“ 工具 ” 菜单里 “ 宏” 子菜单的 “Visual Basic 编辑器 ” 选项即可进入。三、 VBE 环境中编写VBA 代码VBA 代码是由语句组成的,一条语句就是一行代码。例如intCount=3 将 3 赋值给变量intCount Debug. Print intCount 在立即窗口打印变量intCount 的值 3 Access的 VBE 编辑环境提供了完整的开发和调试工具。其中的代码窗口顶部包含两个组合框,左侧为对象列表,右侧为过程列表。操作时,从左侧组合框选定一个对象后,右侧过程组合框中会列出该对象的所有事件过程

12、,再从该对象过程列表选项中选择某个事件名称,系统会自动生成相应的事件过程模块,用户添加代码即可。双击工程窗口中的任何类或对象都可以在代码窗口中打开相应代码进行编辑处理。四、程序语句书写原则(详见书本P206)8.3.3 数据类型和数据库对象一、标准数据类型(1)布尔型数据布尔型数据只有两个值True 或 False。 布尔型数据转换为其他类型数据时,Ture 转换为 -1,False转换为 0; 其他类型数据转换为布尔型数据时,0 转换为 False, 其他类型转换为Ture。(2)日期型数据“ 日期 /时间 ” 类型数据必须前后用“ #”号封住。如#2007-1-1#、#2002-5-4 1

13、4:30:00 PM# 。(3)变体类型数据变体类型数据是特殊的数据类型。VBA 中规定,如果没有显示声明或使用符号来定义变量的数据类型,则默认为变体类型。二、用户定义的数据类型(详见书本P208)应用过程中可以建立包含一个或多个VBA 标准数据类型的数据类型,这就是用户定义数据类型。它不仅包含VBA 的标准数据类型,还包含其他用户定义的数据类型。用户定义数据类型可以在Type . End Type 关键字间定义,定义格式如下: Type数据类型名 域名 As数据类型域名 As数据类型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -

14、- 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - End Type 三、数据库对象(详见书本P208)8.3.4 变量与常量变量是程序运行过程中值会发生变化的数据。如同一间旅馆客房,昨天可住旅客A,今天住旅客 B,明天又有可能被闲置。变量的命名规则如下:(1)以字母或汉字开头,后可跟字母、数字或下划线。(2)变量名最长为255 个字符。(3)不区分变量名的大小写,不能使用关键字。(4)字符之间必须并排书写,不能出现上下标。以下是合法的变量名:a,x, x3, BOOK_1 ,sum5 以下是非法的变量名:3s s*T -3x bowy-

15、1 if 常量是在程序中可以直接引用的实际值,其值在程序运行过程中不变。在VBA 中,常量可以分为 3 种:直接常量、符号常量和系统常量一、变量的声明VBA 变量声明有两种方法。1、显式声明VBA 中定义变量的格式为:Dim 变量名AS 类型 格式中 Dim 是一个 VBA 命令,此处用于定义变量;As 是关键字,此处用于指定变量的数据类型。例如: Dim bAge as Integer bAge 为整型变量2、隐含声明VBA 允许用户在编写应用程序时,不声明变量而直接使用,这就是隐式声明。所有隐式声明的变量都是Variant 数据类型。例如:Dim m,n, m,n 为变体 Variant

16、变量NewVar=528 NewVar 为 Variant 类型变量,其值为258。二、强制声明在默认情况下, VBA 允许在代码中使用未声明的变量,如果在模块设计窗口的顶部“ 通用声明 ” 区域中,加入语句:Option Explicit 强制要求所有变量必须定义才能使用。这种方法只能为当前模块设置了自动变量声明功能,如果想为所有模块都启用此功能,可以单击菜单命令“ 工具 ” 下“ 选项 ” 对话框中,选中“ 要求变量声明” 选项即可。三变量的作用域(1)局部范围(Local)变量定义在模块的过程内部,过程代码执行时才可见。在子过程或函数过程中定义的或直接使用的变量作用范围都是局部的。在子过

17、程或函数内部使用Dim 、Static As关键字说明的变量就是局部范围的。(2)模块范围(Module )变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程或函数过程中可见。在模块的通用说明区,用Dim、Static、Private As 关键字定义的变量作用域名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 都是模块范围。(3)全局范围(Public)变量定义在标准模块的所有过程之外的起始位置,运行时在类

18、模块和标准模块的所有子过程或函数过程中都可见。在标准模块的变量定义区域,用PublicAs关键字说明的变量就属于全局的范围。变量的持续时间(生命周期)是从变量定义语句所在的过程第一次运行,到程序代码执行完毕并将控制权交回调用它的过程为止的时间。四数据库对象变量Access建立的数据库对象及其属性,均可被看成是VBA 程序代码中的变量及其指定的值来加以引用。例如, Access中窗体和报表对象的引用格式为:Forms !窗体名称!控件名称.属性名称 或Reports !报表名称!控件名称.属性名称 关键字 Forms 或 Reports 分别表示窗体或报表对象集合。感叹号“! ”分隔开对象名称和

19、控件名称。 “ 属性名称 ” 部分缺省,则为控件基本属性。如果对象名称中含有空格或标点符号,就要用方括号把名称括起来。五数组数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变量。数组变量由变量名和数组下标构成,使用数组必须先定义数组。通常用Dim 语句来定义数组,定义格式为:Dim 数组名 (to)As 缺省情况下,下标下限为0,数组元素从“ 数组名 (0) ” 至“ 数组名 (下标上限 ) ” ;如果使用to选项,则可以安排非0 下限。例如, dim score(10)as Integer 定义了 11 个整形数构成的数组,数组元素为score(0) 至 score(10)

20、再如,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 后面的参数

21、只能取0 或 1 (3)和不能使用变量,必须是常量,常量可以是字面常量或符号常量,一般是整型常量。(4)如果省略As 子句,则数组的类型为Varient 变体类型。二维数组的定义格式为:Dim 数组名 (to,to)As 例如, Dim c(1 To 3, 1 To 4)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)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - -

22、 - - c( 3,1)c(3,2)c(3,3)c(3,4)六、变量标识命名法规在编写 VBA 程序代码时,会用到大量的变量名称和不同的数据类型。对于控件对象,可以用 VBA 的 Set 关键字将每个命名的控件对象指定为一个变量名称。目前, VB 和 VBA 均推荐使用Hungarian 符号法作为命名法则。该方法也被广泛用在C 和 C+等一些程序中。Hungarian 符号法使用一组代表数据类型的码。用小写字母作为变量名的前缀。七符号常量如果程序中多处用到某个常量,将其定义成符号常量可增加代码的可读性,也便于维护。符号常量用关键字Const 来定义,格式如下:Const 符号常量名称 =常量

23、值例如:Const PI as single=3.1415926 定义了一个符号常量PI,其值为 3.1415926 若是在模块的声明区中定义符号常量,则建立一个所有模块都可以用的全局符号常量。一般是 Const 前加 Global 或 Public 关键字。八系统常量这是一类特殊的符号常量,Access系统内部包含若干个启动时就建立的系统常量,有 True、False、Yes、No、On、Off 和 Null 等。在编码时可以直接使用。例如:VBA 类库中, vbRed 代表红色, vbBlue 代表蓝色。这里开始的两个字母表示所在的类库Access类库的常量以ac 开始,如 acForm

24、等。ADO 类库的常量以ad 开始,如 adOpenKeyset。8. 3.5 常用标准函数(本节请详见书本P213)在 VBA 中,除在模块创建中可以定义子过程与函数过程完成特定功能外,又提供了近百个内置的标准函数,可以方便完成许多操作。标准函数一般用于表达式中,有的能和语句一样使用。其使用形式如下:函数名 (参数 1,参数2,参数 3,参数 4,参数 5 ) 其中,函数名必不可少,函数的参数放在函数名后的圆括号中,参数可以是常量、变量或表达式,可以有一个或多个,少数函数为无参函数。8.3.6 运算符和表达式(详见书本P219)在 VBA 编程语言中,提供了许多运算符来完成各种形式的运算和处

25、理。根据运算不同,可以分成 4 种类型的运算符:算术运算符、关系运算符、逻辑运算符和连接运算符。8.4 VBA 流程控制语句一个语句是能够完成某项操作的一条命令。VBA 程序的功能就是由大量的语句串命令构成。VBA 程序语句按照其功能不同分成两大类型:(1)声明语句,用于给变量、常量或过程定义命名;(2)执行语句,用于执行赋值操作,调用过程,实现各种流程控制。执行语句分为3种结构:(1)顺序结构,按照语句顺序顺次执行。(2)条件结构,又称为选择结构,根据条件选择执行路径。(3)循环结构,重复执行某一段程序语句。8.4.1 赋值语句赋值语句是最基本的语句。它的功能是给变量或对象的属性赋值。其格式

26、为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 或 例如:Rate = 0.1 给变量 Rate 赋值 0.1 Me!Text1.Value = “欢迎来到领航教育 “ 给控件的属性赋值8.4.2 条件语句1If Then 语句例如:语句格式为If Then End If 输入一个数并在立即窗口输出其值Dim x As Integer x = InputBox( 请输入 x的值 :) If x Then Debug.Prin

27、t x End If 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 2If ThenElse 语句语句格式为If Then Else End If 说明:(1)可以是任何表达式,一般为关系表达式或布尔表达式。如果是其他表达式,则非 0 认为是 True,0 认为是 False。(2)执行时,先判断表达式的值,为True 则执行语句块1,否则执行语句块2。例如:输入两个数并在立即窗口输出其中较大的数Dim x As Integ

28、er, y As Integer x = InputBox( 请输入 x的值 :) y = InputBox( 请输入 y的值 :) If x y Then Debug.Print x Else Debug.Print y End If 3If ThenElseIf 语句语句格式为If Then ElseIf Then ElseIf Then Else End If 运行时,从表达式1 开始逐个测试条件,当找到第一个为True 的条件时,即执行该条件后所对应的语句块。4Select CaseEnd Select 语句语句格式为Select Case Case 语句块 1 Case 语句块 2

29、Case Else 语句块 n+1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - End Select 说明:(1)Select Case后的变量或表达式只能是数值型或字符型表达式。(2)执行过程是先计算Select Case后的变量或表达式的值,然后从上至下逐个比较,决定执行哪一个语句块。如果有多个Case 后的表达式列表与其相匹配,则只执行第一个Case后的语句块。(3)语句中的各个表达式列表应与Select Case后

30、的变量或表达式同类型。各个表达式列表可以采用下面的形式表达式:a +5 用逗号分隔的一组枚举表达式:2, 4, 6, 8 表达式 1 To 表达式 2 60 to 100 Is 关系运算符表达式Is 60 5条件函数除了上述条件语句外,VBA 还提供了 3 个函数来完成相应选择操作:(1)IIf 函数:IIf( 条件式,表达式1,表达式 2)。该函数根据 “ 条件式 ” 的值来决定函数返回值。“ 条件式 ” 值为真, 函数返回 “ 表达式 1”的值, “ 条件式 ” 值为假,函数返回“ 表达式 2”的值。(2)Switch 函数:Switch(条件式1,表达式1,条件式2,表达式2,条件式3,

31、表达式3,条件式n,表达式 n) 该函数是分别根据“ 条件 1” ,“ 条件 2” 直至 “ 条件 n” 的值来决定函数的返回值。(3)Choose函数: Choose(索引式,选项1,选项 2,选项 n) 该函数式根据“ 索引式 ” 的值来返回选项列表中的某个值。8.4.3 循环语句循环控制结构也叫重复控制结构。特点是程序执行时,该语句中的一部分操作即循环体被重复执行多次。循环语句可以实现重复执行一行或几行程序代码。VBA 支持以下循环语句结构:(l)For Next语句。(2)DoLoop 语句。(3)While Wend 语句。1For-Next 循环语句语句格式为For to Step

32、 Exit For Next 说明:(1)循环控制变量的类型必须是数值型。(2)步长可以是正数,也可以是负数。如果步长为1,Step 短语可以省略。(3)根据初值、终值和步长,可以计算出循环的次数,因此For 语句一般用于循环次数已知的情况。(4)使用 Exit For 语句可以提前退出循环。例编程用 For 语句求 1+2+3+ +10之和Public Sub gc2() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - Di

33、m s As Integer, i As Integer s=0 For i = 1 To 10 Step 1 s = s + i Next i Debug.Print s End Sub 2Do While Loop语句形式如下:Do While 循环体Exit Do 语句块Loop 说明:(1)这里的条件可以是任何类型的表达式,非0 为真, 0 为假。(2)执行过程是:在每次循环开始时测试条件,对于Do While 语句,如果条件成立,则执行循环体的内容, 然后回到Do Whlie 处准备下一次循环; 如果条件不成立, 则退出循环。(3)Exit Do 语句的作用是提前终止循环。例如:下面

34、的程序用Do WhileLoop 语句求 1+2+3+10 之和。Dim s As Integer, i As Integer s = 0 i = 1 Do While i = 10 s = s + i i = i + 1 Loop Debug.Print s 3Do Until Loop 语句形式如下:Do Until 循环体Exit Do 语句块Loop 说明:(1)这里的条件可以是任何类型的表达式,非0 为真, 0 为假。(2)执行过程是:在每次循环开始时测试条件,对于Do Until 语句,如果条件不成立,则执行循环体的内容,然后回到Do Until 处准备下一次循环;如果条件成立,则

35、退出循环。(3)Exit Do 语句的作用是提前终止循环。例如:下面的程序用Do Until Loop 语句求 1+2+3+10 之和。Dim s As Integer, i As Integer s = 0 i = 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - Do Until i 10 s = s + i i = i + 1 Loop Debug.Print s 4DoLoop While 语句格式如下:Do 循环

36、体Exit Do 语句块Loop While 说明:和 Do WhileLoop 不同的是,DoLoop While 语句在每次循环结束时测试条件。因此,二者的区别是如果一开始循环条件就不成立,则Do WhileLoop 中的循环体部分一次也不执行,而DoLoop While 中的循环体部分被执行一次。5DoLoop Until 语句格式如下:Do 循环体Exit Do 语句块Loop Until 说明:和 Do Until Loop 不同的是, DoLoop Until 语句在每次循环结束时测试条件。因此,二者的区别是如果一开始循环条件就不成立,则Do Until Loop 中的循环体部分一

37、次也不执行,而DoLoop Until 中的循环体部分被执行一次。6While-Wend 语句格式如下:While 条件式循环体Wend 说明:(1) While-Wend 循环与Do While Loop 结构类似,但不能在While-Wend 循环中使用Exit Do 语句。(2)在 VBA 中,尽量不要使用While-Wend循环。8.4.4 其他语句 -标号和 GoTo 语句GoTo 语句用于实现无条件转移。使用格式为:GoTo 标号。程序运行到此结构,会无条件转移到其后的“标号”位置,并从那里继续执行。GoTo 语句使用时 ,“标号”位置必须首先在程序中定义好,否则转移无法实现。8.

38、5 过程调用和参数传递?过程是一段可以实现某个具体功能的代码?与函数不同,过程没有返回值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - ?既可以在类模块中,也可以在标准模块中创建过程1子过程的定义和调用可以用 Sub 语句声明一个新的子过程、接收的参数和子过程代码。其定义格式为:Public|PrivateStatic Sub 子过程名( ) 语句块Exit Sub 子过程语句End Sub 使用 Public 关键字可以使

39、该过程适用于所有模块中的所有其他过程;使用 Private 关键字可以使该子过程只适用于同一个模块中的其他过程。创建过程的方法是:打开模块,选择菜单“ 插入 ” “ 过程 ” 命令,在 “ 添加过程 ” 对话框中输入过程名。调用过程有以下两种格式:格式 1:call 过程名( 实参列表 )格式 2:子过程名实参列表 这里过程名后的参数叫实际参数。2函数过程的定义和调用可以使用Function 语句定义一个新函数过程、接收参数、返回变量类型及运行函数过程的代码。其格式如下: Public | PrivateStaticFunction函数过程名 形参 As 数据类型 函数过程语句 函数过程语句表

40、达式 Exit Function 函数过程语句 函数过程语句 =表达式 End Function 函数过程的调用格式只有一种:函数过程名 (实参 ) 由于函数过程返回一个值,实际上,函数过程的上述调用形式主要有两种方法:一是将函数过程返回值作为赋值成分赋予某个变量,其格式为 “ 变量函数过程名(实参 )” ;二是将函数过程返回值作为某个过程的实参成分使用。3参数传递过程定义时可以设置一个或多个形参(形式参数的简称),多个形参之间用逗号分隔。其中,每个形参的完整定义格式: OptionalByVal |ByRefParamArrayvarname()As typedefaultvalue 含参数

41、的过程被调用时,主调过程中的调用式必须提供相应的实参(实际参数的简称),并通过实参向形参传递的方式完成过程操作。在函数的调用过程中,一般会发生数据的传递,即将主调过程中的实参传给被调过程的形参。在参数传递过程中,可以有传址和传值两种形式。1传址如果在定义过程或函数时,形参的变量名前不加任何前缀,即为传址;若加前缀,须在形参变量名前加ByRef。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 传递过程是:调用过程时,将实参的地

42、址传给形参。因此如果在被调过程或函数中修改了形参的值,则主调过程或函数中实参的值也跟着变化。例如:如果输入5 和 7,程序的结果会是多少?Public Sub swap(x As Integer, y As Integer) Dim t As Integer t = x: x = y: y = t End Sub 按钮的单击事件如下:Private Sub Command0_Click() Dim x As Integer, y As Integer x = InputBox(x=) y = InputBox(y=) Debug.Print x, y swap x, y Debug.Print

43、 x, y End Sub 2传值如果在定义过程或函数时,形参的变量名前加ByVal 前缀,即为传值。这时主调过程将实参的值复制后传给被调过程的形参,因此如果在被调过程或函数中修改了形参的值,则主调过程或函数中实参的值不会跟着变化。例如:如果输入5 和 7,程序的结果会是多少?Public Sub swap1(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t = x: x = y: y = t End Sub 按钮的单击事件如下:Private Sub Command0_Click() Dim x As Integer, y

44、As Integer x = InputBox(x=) y = InputBox(y=) Debug.Print x, y swap1 x, y Debug.Print x, y End Sub 8.6 VBA 程序运行错误处理VBA 中提供 On Error GoTo 语句来控制当有错误发生时程序的处理。On Error GoTo 指令的一般语法如下:On Error GoTo 标号On Error Resume Next On Error GoTo 0 “ On Error GoTo标号 ” 语句在遇到错误发生时程序转移到标号所指定位置的代码处执行。“ On Error Resume Ne

45、xt ” 语句在遇到错误发生时不会考虑错误,并继续执行下一条语句。“ On Error GoTo 0” 用于关闭错误处理。8.7 VBA 程序的调试(详见书本P238)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - 8.7.1 设置断点所谓 “ 断点 ” 就是在过程的某个特定语句上设置一个位置点以中断程序的执行。“ 断点 ” 的设置和使用贯穿在程序调试运行的整个过程中。在程序中人为设置断点,当程序运行到设置了断点的语句时,会

46、自动暂停运行并进入中断状态。设置断点的方法是:在代码窗口中单击要设置断点的那一行语句左侧的灰色边界标识条。再次单击边界标识条可取消断点。8.7.2 单步跟踪也可以单步跟踪程序的运行,即每执行一条语句后都自动进入中断状态。单步跟踪程序的方法是:将光标置于要执行的过程内,单击 “ 调试 ” 工具栏的 “ 逐语句 ” 按钮,或选择 “ 调试 ” “ 逐语句 ”命令。8.7.3 设置监视点即设置监视表达式。一旦监视表达式的值为真或改变,程序也会自动进入中断模式。设置监视点的方法如下。(1)选择 “ 调试” “ 添加监视 ” 命令,弹出 “ 添加监视 ” 对话框。(2)在“ 模块 ” 下拉列表框中选择被监视过程所在的模块,在“ 过程 ” 下拉列表框中选择要监视的过程,在“ 表达式 ” 文本框中输入要监视的表达式。(3)最后在 “ 监视类型 ” 栏中选择监视类型。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁