第5章 模块对象和VBA程序设计.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第5章 模块对象和VBA程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章 模块对象和VBA程序设计.ppt(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第第5 5章章 模块对象和模块对象和VBAVBA程序设计程序设计1本章内容本章内容n n 5.1 5.1 模块对象概述模块对象概述 n n 5.2 5.2 VBAVBA程序基础程序基础 n n 5.3 5.3 选择语句选择语句 n n 5.4 5.4 循环语句循环语句n n 5.5 5.5 数组数组n n 5.6 5.6 过程过程 25.1 5.1 模块对象概述模块对象概述 n模块模块(标准模块标准模块)是是Access数据库数据库7个对象之一,个对象之一,其实质其实质就是没有界面的就是没有界面的VBA程序。程序。n模块包含若干由模块包含若干由VBA代码组成的过程代码组成的过程。每个过程完成
2、一。每个过程完成一个相对独立的操作,不涉及界面,是个相对独立的操作,不涉及界面,是“纯纯”程序段。程序段。n模块具有很强的模块具有很强的通用性通用性,窗体、报表等对象都可以调用,窗体、报表等对象都可以调用模块内部的过程。模块内部的过程。nVBA是是VB的子集的子集。35.2 VBA5.2 VBA程序基础程序基础 5.2.1 模块和过程的创建 5.2.2 数据类型、常量、变量与表达式 5.2.3 VBA的常用内部函数 5.2.4 数据的输入与输出 45.2.1 5.2.1 模块和过程的创建模块和过程的创建1.新建模块新建模块模块由过程组成,而过程由程序员编写程序形成。模块由过程组成,而过程由程序
3、员编写程序形成。例例5-1 创建一个名为创建一个名为“模块入门模块入门”的新模块的新模块 保存为保存为“模块入门模块入门”模块模块新建新建55.2.1 5.2.1 模块和过程的创建模块和过程的创建2.过程过程n过程过程由由VBA语句语句组成,是一段相对独立的代码。组成,是一段相对独立的代码。n过程与过程之间相互隔离过程与过程之间相互隔离,系统不会从一个过程自动,系统不会从一个过程自动执行到另一个过程,但一个过程执行到另一个过程,但一个过程可以通过调用执行另可以通过调用执行另一个过程一个过程。n过程过程不是不是Access的一个独立对象,的一个独立对象,不能单独保存不能单独保存,只能存在于模块中
4、。只能存在于模块中。n过程以过程以Sub()的形式开头(圆括号内放置该的形式开头(圆括号内放置该过程被调用时需接受的参数),以过程被调用时需接受的参数),以End Sub结束结束65.2.1 5.2.1 模块和过程的创建模块和过程的创建3.新建过程新建过程 例例5-2 在在“模块入门模块入门”模块中创建一个模块中创建一个Hello过程过程。用户输入用户输入 执行过程执行过程 双击双击 Sub Hello()MsgBox 大家好!大家好!End Sub75.2.1 5.2.1 模块和过程的创建模块和过程的创建4.模块的构成模块的构成n在在通用声明段通用声明段定义的变量称为定义的变量称为模块级模块
5、级变量,这些变量可以在变量,这些变量可以在本模块的各个过程中使用。本模块的各个过程中使用。n在在过程内部过程内部定义的变量称为定义的变量称为过过程级程级变量,其使用范围只限于变量,其使用范围只限于本过程。本过程。85.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式 1.VBA的数据类型的数据类型 数值,可数值,可进行数学进行数学运算运算95.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式 2.标识符标识符 p标识符:程序中标识符:程序中常量、变量、过程常量、变量、过程等对象的名字等对象的名字pVBA标识符规定:标识符规定:q第一个字符
6、必须是字母第一个字符必须是字母q包含的字符数不超过包含的字符数不超过255个个q不得与不得与VBA的关键字同名,如不能使用的关键字同名,如不能使用Sub、For、If、Dim等。等。105.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式 2.标识符标识符 pVBA标识符规定:标识符规定:q不能使用下列字符:不能使用下列字符:!&$#%(空格)(空格)q从增强程序可读性角度出发,标识符应使人望文生义,从增强程序可读性角度出发,标识符应使人望文生义,用具有实际意义的单词词组。用具有实际意义的单词词组。例如:平均工资的标识符用:例如:平均工资的标识符用:AverageS
7、alary 运输日期的标识符用:运输日期的标识符用:ShipDate类型符类型符115.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式3.常量常量 n常量:常量:VBA在运行时其值始终保持不变的量在运行时其值始终保持不变的量n字符串常量放在一对字符串常量放在一对内,日期内,日期/时间型常量放在一对时间型常量放在一对#内。如内。如中国中国、#9/1/2005#等。等。n符号常量符号常量:用标识符保存一个常量值:用标识符保存一个常量值n使用使用Const语句定义符号常量,如:语句定义符号常量,如:Const Pai=3.141569 Const TermBeginDa
8、te=#9/1/2005#“=”表示赋表示赋值值12复复 习习n模块与过程的关系,创建方法模块与过程的关系,创建方法nVBA常用数据类型常用数据类型 日期型日期型(Date)、布尔型、布尔型(Boolean)、整型、整型(Integer)、长整型长整型(Long)、单精度型、单精度型(Single)、字符串、字符串(String)n常量常量 文本型:文本型:abc 、日期型:、日期型:#4/1/2010#Const 常量名常量名=常量值常量值135.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式4.变量变量 p变量:变量:程序运行期间值可以改变的量程序运行期间值可
9、以改变的量 p变量在使用前应该用变量在使用前应该用Dim语句进行声明语句进行声明Dim As,As,.Dim StudentName As StringDim Grade As Integer,AvgGrade As SingleDim Passed As Boolean,ExamDate As Date145.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式4.4.变量变量 p默认情况下,变量可以不经声明即可使用,该变默认情况下,变量可以不经声明即可使用,该变量被自动声明为量被自动声明为VariantVariant类型类型(变体型变体型)pVariantVaria
10、nt类型变量可以接纳各种类型的数据。类型变量可以接纳各种类型的数据。p在变量使用前在变量使用前最好根据实际类型进行声明最好根据实际类型进行声明。155.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式 强制实现变量先定义后使用:在代码窗口中执行强制实现变量先定义后使用:在代码窗口中执行“工具工具”/“选项选项”命令命令 此此后后新新创创建建的的模模块块中中,窗窗口口顶端自动出现:顶端自动出现:Option Explicit 编辑器编辑器要求声明变量要求声明变量165.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式5.5.运算符运算符p算
11、术运算符:算术运算符:(幂幂)、-(-(取负取负)、*、/、(整除整除)、Mod(Mod(取余取余)、+、-注意优先级先后顺序!可通过注意优先级先后顺序!可通过()改变运算顺序改变运算顺序175.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式5.5.运算符运算符 p关系运算符:关系运算符:其值为一个布尔量其值为一个布尔量(True(True或或False)False)、=、=、=、(不等于不等于)p逻辑运算符:逻辑运算符:连接关系表达式或布尔值连接关系表达式或布尔值 NotNot、AndAnd、OrOrp连接运算符:连接运算符:+、&“+”“+”用于连接字符串用于
12、连接字符串 “&”&”可将几个不同类型的值连接成一个字符串。可将几个不同类型的值连接成一个字符串。185.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量与表达式【例例5-3】输出当天日期及距输出当天日期及距2012年元旦的天数年元旦的天数在在“模块入门模块入门”模块模块中中添加如下添加如下Today()过程:过程:运行结果运行结果 Sub Today()MsgBox 今天的日期是今天的日期是&Date&,距,距2012年年1月月1日还有日还有&(#1/1/2012#-Date)&天天End Sub195.2.2 5.2.2 数据类型、常量、变量与表达式数据类型、常量、变量
13、与表达式6.表达式表达式n表达式:用运算符将常量、变量、函数等连接起来的表达式:用运算符将常量、变量、函数等连接起来的式子,书写在一行上。如:式子,书写在一行上。如:n n表达式可分为:表达式可分为:q算术表达式算术表达式,如,如 Count=Count+1 q关系表达式关系表达式,如,如 C20 q逻辑表达式逻辑表达式,如,如 Age=60 (-b+Sqr(b2-4*a*c)/(2*a)205.2.3 VBA5.2.3 VBA的常用内部函数的常用内部函数【例5-4】求8x2-10 x-75=0的两个实根运行结果运行结果P132215.2.3 VBA5.2.3 VBA的常用内部函数的常用内部函
14、数 n内部函数内部函数(标准函数标准函数)的调用格式:的调用格式:函数名函数名(参数参数)例如:例如:year(now()n根据函数返回值的类型,可以将函数分为:根据函数返回值的类型,可以将函数分为:q数值型函数数值型函数(教材(教材P130表表5.2)q字符串函数字符串函数(教材(教材P130表表5.3)q日期日期/时间函数时间函数(教材(教材P131表表5.4)q类型转换函数类型转换函数(教材(教材P131表表5.5)225.2.4 5.2.4 数据的输入与输出数据的输入与输出 1.InputBox()函数函数 InputBox(Prompt,Title,Default,Xpos,Ypos
15、)说明:说明:qPrompt参数必不可少,用于显示参数必不可少,用于显示输入提示文本输入提示文本;qTitle参数用于参数用于指定对话框标题指定对话框标题,缺省标题为,缺省标题为 “Microsoft office Access”;qDefault参数为对话框提供一个参数为对话框提供一个默认值默认值;q Xpos、Ypos参数决定对话框出现在屏幕上的位置,参数决定对话框出现在屏幕上的位置,缺省时出现在屏幕中央缺省时出现在屏幕中央。q返回值返回值为用户输入的值为用户输入的值 235.2.4 5.2.4 数据的输入与输出数据的输入与输出【例例5-5】输入一个年龄值,默认为输入一个年龄值,默认为18
16、岁,岁,然后用然后用MsgBox()输出。输出。Sub Age()Dim N As Byte N=InputBox(请输入你的年龄值请输入你的年龄值,输入年龄输入年龄,18)MsgBox 该生年龄为该生年龄为&N&岁岁End Sub输入提示文本输入提示文本对话框标题对话框标题默认默认18岁岁245.2.4 5.2.4 数据的输入与输出数据的输入与输出nInputBox()函数返回值的类型由接受返回值变函数返回值的类型由接受返回值变量的类型决定。量的类型决定。例如,例如,D=InputBox(测试测试,1)qD为整型变量时,为整型变量时,D输出的是默认数值输出的是默认数值1;qD为日期型变量时,
17、为日期型变量时,D输出的是默认日期输出的是默认日期 1899-12-31;qD为为Boolean变量时,变量时,D输出的默认值为输出的默认值为True。255.2.4 5.2.4 数据的输入与输出数据的输入与输出2.MsgBox()函数 MsgBox(Prompt,Buttons,Title)说明:qPrompt参数必不可少,用于输出结果或提示性文本;参数必不可少,用于输出结果或提示性文本;qButtons是一个或一组按钮,缺省为一个是一个或一组按钮,缺省为一个“确定确定”按钮;按钮;qTitle参数用于指定消息对话框标题,缺省为参数用于指定消息对话框标题,缺省为 “Microsoft off
18、ice Acces”;qButtons参数设置方法如参数设置方法如P134表表5.7所示,函数的返回所示,函数的返回值如值如P134表表5.6所示。所示。265.2.4 5.2.4 数据的输入与输出数据的输入与输出【例例5-6】让管理人员用消息对话框决定李卫星是否为让管理人员用消息对话框决定李卫星是否为马腾跃的研究生马腾跃的研究生。Sub IsGraduate()Dim Answer As Integer Answer=MsgBox(李卫星是马腾跃的研究生吗?李卫星是马腾跃的研究生吗?,vbYesNo+vbQuestion)If Answer=vbYes Then MsgBox 李卫星是马腾跃
19、的研李卫星是马腾跃的研究生究生 If Answer=vbNo Then MsgBox 李卫星不是马腾跃的李卫星不是马腾跃的研究生研究生End Sub275.2.4 5.2.4 数据的输入与输出数据的输入与输出3.Debug3.Debug窗口窗口 在在VBAVBA代码窗口的代码窗口的“视图视图”菜单中称为菜单中称为“立即窗立即窗口口”。对于数据量较大的运行结果,可以用对于数据量较大的运行结果,可以用DebugDebug窗口窗口的的PrintPrint方法输出。方法输出。PrintPrint方法使用方法使用“;”或者或者“&”连接输出项,也连接输出项,也可以使用可以使用“,”使各个输出项之间空开一
20、定距离。使各个输出项之间空开一定距离。285.2.4 5.2.4 数据的输入与输出数据的输入与输出【例例5-7】用随机函数用随机函数 产生两个产生两个100100以内的整数并相以内的整数并相加,结果在立即窗口中输出。加,结果在立即窗口中输出。Sub Add()Dim X As Integer,Y As Integer Randomize Timer X=Rnd*99:Y=Rnd*99 Debug.Print X;+;Y;=;X+YEnd Sub运运行行4次次设置随机数种子,使产生设置随机数种子,使产生的随机数尽可能不一致的随机数尽可能不一致295.2.4 5.2.4 数据的输入与输出数据的输入
21、与输出【例例5-8】输出输出1、3、5及其对应的平方根,保留及其对应的平方根,保留3位位小数。小数。Sub Sqr_Root()Debug.Print Tab(5);1;Tab(12);3;Tab(19);5 Debug.Print Tab(5);Round(Sqr(1),3);Tab(12);Round(Sqr(3),3);Debug.Print Tab(19);Round(Sqr(5),3)End Sub运行结果运行结果 Tab(n)函数:控制输出项的列位置函数:控制输出项的列位置30总总 结结 复复 习习n变量变量 Dim StudentName As String n运算符运算符 算术
22、、关系、连接、逻辑算术、关系、连接、逻辑n表达式表达式 算数、关系、逻辑算数、关系、逻辑n常用内部函数常用内部函数 数值、字符串、时期数值、字符串、时期/时间、时间、类型转换类型转换 n数据的输入与输出数据的输入与输出 InputBox(Prompt,Title,Default,Xpos,Ypos)MsgBox(Prompt,Buttons,Title)Debug窗口窗口+、&315.3 5.3 选择语句选择语句 5.3.1 IfThen语句 5.3.2 IfThenElse语句 5.3.3 块状选择语句 5.3.4 选择语句嵌套 5.3.5 Select Case语句325.3.1 IfTh
23、en5.3.1 IfThen语句语句 格式:格式:If If Then Then 关系表达式或逻辑表达式成立时执行关系表达式或逻辑表达式成立时执行ThenThen后的语后的语句,否则直接执行句,否则直接执行IfIf的下一条语句。的下一条语句。可以一条语句,也可以是若干条用冒号可以一条语句,也可以是若干条用冒号“:”隔开的隔开的VBAVBA语句组。语句组。335.3.1 IfThen5.3.1 IfThen语句语句【例例5-9】随机出一道两位数加法题让小学生回答随机出一道两位数加法题让小学生回答 345.3.1 IfThen5.3.1 IfThen语句语句【例例5-9】随机出一道两位数加法题让小
24、学生回答随机出一道两位数加法题让小学生回答 Sub test()Dim A As Integer,B As Integer,Sum As Integer Randomize Timer A=10+Rnd*89:B=10+Rnd*89 Sum=InputBox(A&+&B&=?,两位数加法两位数加法)If Sum=A+B Then MsgBox 答案正确!答案正确!If Sum A+B Then MsgBox 答错了!正确答案是答错了!正确答案是&A+BEnd Sub355.3.2 IfThenElse5.3.2 IfThenElse语句语句n格式:If Then Else nIf后的表达式成立
25、时执行Then后的语句,不成立时执行Else后的语句;然后程序继续执行If后的其他语句。If Sum=A+B Then MsgBox 答案正确!答案正确!If Sum A+B Then MsgBox 答错了!正确答案是答错了!正确答案是&A+B If Sum=A+B Then MsgBox 答案正确!答案正确!Else MsgBox 答错了!答错了!正确答案是正确答案是&A+B等等价价365.3.2 IfThenElse5.3.2 IfThenElse语句语句【例例5-105-10】编写过程实现:通过键盘输入一门课程的考编写过程实现:通过键盘输入一门课程的考试成绩,用消息对话框显示是否合格试成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 模块对象和VBA程序设计 模块 对象 VBA 程序设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内