《vba编程基础》PPT课件.ppt_第1页
《vba编程基础》PPT课件.ppt_第2页
《vba编程基础》PPT课件.ppt_第3页
《vba编程基础》PPT课件.ppt_第4页
《vba编程基础》PPT课件.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章VBA程序设计,主要内容:,Vba概述Vba编程基础程序流程控制面向对象的程序设计,2,3,8.1VBA概述,1、VBA简介VBA是VisualBasicforApplication的缩写,是微软Office系列软件的内置编程语言,与VisualBasic具有相同的语言功能。在VBA中,程序是由过程组成的,过程由根据VBA规则书写的指令组成。用VBA编写的代码将保存在Access的一个模块里,并通过类似在窗体中激发宏的操作那样来启动这个模块,从而实现相应的功能。,4,2、VBA的编程环境,5,8.2VBA编程基础,一、数据类型VBA支持多种数据类型,Access数据表中的字段使用的数据类型(OLE对象和备注类型除外)在VBA中都有对应的类型。VBA的数据类型、符号、字段类型及取值范围,如表9.9所示(P229)。,6,二、常量和变量,1、常量常量是指在程序运行时其值不会发生改变的数据。VBA的常量有4种类型:(1)直接常量直接常量就是直接表示的数值或字符串,如1234、17.28E+9、“StuID”等。(2)符号常量符号常量使用关键字Const来定义,格式如下:Const符号常量名称=常量值例:ConstPI=3.1415926(3)固有常量特殊的符号常量,已经预先在类库中定义好。例:visualbasic类库的常量以“vb”开头,如vbred,7,2、变量,变量是指程序运行时值会发生变化的数据。变量的三要素是:变量名、变量类型和变量的值。变量名只能由字母、数字、汉字和下划线组成,且必须以字母开头,不区分字母的大小写,长度不能超过255。对变量进行声明可以使用类型说明符号、Dim语句和DefType语句。,8,(1)使用类型说明符号声明变量,VBA中的类型说明符号有%(Integer)、&(Long)、!(Single)、#(Double)、$(String)、(Currency),使用时放在变量名称的末尾。例:intX%=123x%=123douY#=12.34strZ$=“VBA”,9,(2)使用Dim语句声明变量,声明变量的一般方法是用Dim语句,其格式为:Dim变量名As数据类型说明:省略As数据类型,则默认定义的变量为Variant数据类型。可以使用Dim语句在一行中声明多个变量。例:DimstrXAsStringDimintXAsInteger,strZAsStringDimi,j,kAsInteger,10,(3)用户自定义类型的声明与使用,用户自定义类型可包含一个或多个基本数据类型的数据元素、或一个已经定义好的用户自定义类型。用户自定义类型使用Type语句进行声明。定义格式如下:Type数据类型名AsAsEndType,例:TypeXSNameAsString*10BirthDateAsDateSexAsIntegerEndType,注意:Type语句只能在模块的通用声明部分使用。,11,使用了Type语句声明了一个用户自定义类型后,就可以在该声明范围内的任何位置声明该类型的变量。可以使用Dim语句声明用户自定义类型的变量。例:DimxasXSx.Name=“张红”x.BirthDate=#80/10/12#x.Sex=0用户自定义类型的变量用“变量名.域名”的格式进行引用。,12,三、运算符和表达式,在VBA编程语言中,可以将运算符分为算术运算符、字符串运算符、关系运算符、逻辑运算符和对象运算符5种类型。不同的运算符用来构成不同的表达式,来完成不同的运算和处理。表达式是由运算符、函数和数据等内容组合而成的,根据运算符的类型可以将表达式分为算数表达式、字符串表达式、关系表达式、逻辑表达式和对象运算表达式5种类型。,13,(1)算术运算符,算术运算符用于数值的算术运算,VBA中的算术运算符如下表所示:,14,算术运算符之间存在优先级,优先级是决定算术表达式的运算顺序的原则,算术运算符优先级从高到低依次为乘幂、乘除法、整除、求余数和加减法。由算术运算符、数值、括号和正负号等构成的表达式称为算术表达式。在算术表达式中,括号和正负号的优先级比算术运算符要高,括号比正负号的优先级高。,15,例:求算术表达式-8+20*4Mod6(52)的结果。,计算的过程如下:1)计算(52)的结果为2,表达式化为-8+20*4Mod622)计算62的结果为36,表达式化为-8+20*4Mod363)计算20*4的结果为80,表达式化为-8+80Mod364)计算80Mod36的结果为8,表达式化为-8+85)计算-8+8的结果为0,16,(2)字符串运算符,连接运算符具有连接字符串的功能。在VBA中有“&”和“+”两个运算符。“&”运算符用来强制两个表达式作字符串连接。“+”运算符是当两个表达式均为字符串数据时,才将两个字符串连接成一个新字符串。,17,(3)关系运算符,关系运算符也称为比较运算符,用来对两个表达式的值进行比较。关系运算的结果为逻辑值:真(True)和假(False)。,18,(4)逻辑运算符,逻辑运算也称为布尔运算,用于连接两个或多个关系表达式,其结果为逻辑值:真(True)和假(False)。,逻辑运算符的优先级低于关系运算符,常用的3个逻辑运算符之间的优先级由高到低依次为:NotAndOr。,19,(5)对象运算符,对象运算符有“!”和“.”两种。使用“!”运算符可以引用一个窗体、报表或窗体和报表上的控件。例:,20,使用“.”运算符可以引用窗体、报表或控件等对象的属性,引用格式为:控件对象名.属性名,在实际使用中,“.”运算符与“!”运算符配合使用,用于标识引用的一个对象或对象的属性。例:Forms!学生信息!Command1.Enable,21,一、语句一个程序由多条不同功能的语句组成,每条语句能够完成某个特定的操作。在VBA程序中,按照功能的不同将程序语句分为声明语句和执行语句两类。声明语句用于定义变量、常量或过程。执行语句用于执行赋值操作、调用过程和实现各种流程控制。,8.3程序流程控制,22,1注释语句,(1)Rem语句,语句格式:Rem注释内容(2)英文单引号“”,语句格式:注释内容注释语句可以添加到程序模块的任何位置,并且默认以绿色文本显示。例:str1=“hello”:Remstr1赋值为“hello”str2=“world”str2赋值为“world”2赋值语句赋值语句是为变量指定一个值或表达式。语句格式:变量名=值或表达式,3、输入输出语句,Inputbox函数dimstrinputasstringstrinput=inputbox(“请输入学生姓名”)Msgbox函数Msgbox(“欢迎你”&strinput)Debug窗口视图-立即窗口print方法是用“;”或“$”连接若干个输出项,24,程序流程控制结构,执行语句可以根据流程的不同分为顺序结构、条件结构和循环结构3种。顺序结构是按照语句的先后顺序依次执行。条件结构是根据条件选择执行不同的分支语句,又称为选择结构。循环结构是根据某个条件重复执行某一段程序语句。,顺序结构,例:请输入圆的半径,计算圆的面积,Submj()DimrAsSingleDimsAsSingleConstpiAsSingle=3.14r=InputBox(“请输入半径)s=pi*r*rDebug.PrintsEndSub,26,分支结构,分支结构也称为选择结构,其特点是程序按照条件表达式的值执行相应语句。在VBA中,通常用If语句、SelectCase语句或条件函数实现分支结构。1、If语句If语句有三种形式:单分支、双分支和多分支。,27,(1)单分支结构,单分支If语句的基本格式如下:If条件表达式Then语句序列EndIf或:If条件表达式Then语句序列功能:当程序执行到这种格式的If语句时,如果条件表达式为真,将执行Then后面的语句序列,如果条件表达式为假,程序将跳过语句序列而直接执行EndIf后面的语句。,28,例:输入两个数到变量x和y中,比较x和y的值,x保存较大的数,y保存较小的数,并在立即窗口中输出。,PublicSubex1()DimxAsInteger,yAsInteger,tAsIntegerx=InputBox(请输入x的值:)y=InputBox(请输入y的值:)Ifx=90ThenDebug.Print优秀ElseIfx=80ThenDebug.Print良好ElseIfx=70ThenDebug.Print中等ElseIfx=60ThenDebug.Print及格ElseDebug.Print不及格EndIfEndSub,读程序:,PrivateSubCommand1_Click()Dima,kAsIntegera=InputBox(请输入a的值:)Ifa60Thenk=1ElseIfa70Thenk=2ElseIfa80Thenmsgbox(“良好”)ElseIfcj70Thenmsgbox(“中等”)ElseIfcj60Thenmsgbox(“及格”)Elsemsgbox(“不及格”)EndifEndifEndifEndifEndSub,37,2、SelectCase语句,当条件选项较多时,使用If语句多重嵌套控制结构会使程序变得很复杂,而Select语句就可以解决这类问题。语句格式为:SelectCaseCase语句序列1Case语句序列2CaseElse语句序列n+1EndSelect,38,说明:(1)SelectCase后的变量或表达式只能是数值型或字符型表达式。(2)执行过程是先计算SelectCase后的变量或表达式的值,然后从上至下逐个比较,决定执行哪一个语句块。如果有多个Case后的表达式与其相匹配,则只执行第一个Case后的语句块。(3)语句中的各个表达式列表应与SelectCase后的变量或表达式同类型。各个表达式列表可以采用下面的形式表达式:a+5用逗号分隔的一组枚举表达式:2,4,6,8表达式1To表达式260to100Is关系运算符表达式Is60,39,例:用SelectCase语句改写上例。,PublicSubex3()DimxAsIntegerx=InputBox(请输入成绩:)SelectCasexCase90To100Debug.Print优秀Case80To89Debug.Print良好Case70To79Debug.Print中等Case60To69Debug.Print及格CaseElseDebug.Print不及格EndSelectEndSub,读程序:,PrivateSubForm_Click()a=1Fori=3To1Step-1SelectCaseiCase1,3a=a+1Case2,4a=a+2EndSelectNextiMsgBoxaEndSub,41,循环结构,循环控制结构也叫重复控制结构。特点是程序执行时,该语句中的一部分操作即循环体被重复执行多次。在VBA中,执行循环控制的语句有For循环语句和DoLoop循环语句。,42,1、For循环语句,语句格式为:FortoStepExitForNext,说明:(1)循环控制变量的类型必须是数值型。(2)步长可以是正数,也可以是负数。如果步长为1,Step短语可以省略。(3)根据初值、终值和步长,可以计算出循环的次数,因此For语句一般用于循环次数已知的情况。(4)使用ExitFor语句可以提前退出循环。,43,例:编程用For语句求1+2+3+10之和。,PublicSubex4()DimsAsInteger,iAsIntegers=0Fori=1To10Step1s=s+iNextiDebug.PrintsEndSub,该循环的执行过程如下:(1)首先给i赋初值1。(2)测试i是否超过终值10。如果没有,则执行累加;否则退出循环转到步骤(5)。(3)将i加上一个步长。(4)重复步骤(2)和步骤(3)。(5)继续执行Next后面的语句。,44,2、DoLoop循环语句,形式1:DoWhile|Until语句块ExitDo语句块Loop,该语句适合的范围更广。,PublicSubex5()下面的程序用DoWhileLoop语句求1+2+3+10之和。DimsAsInteger,iAsIntegers=0:i=1DoWhilei=10s=s+ii=i+1LoopDebug.PrintsEndSub,执行过程是:在每次循环开始时测试条件,对于DoWhile语句,如果条件成立,则执行循环体的内容,然后回到DoWhlie处准备下一次循环;否则如果条件不成立,则退出循环。对于DoUntil语句,则正好相反,当条件满足时退出循环。ExitDo语句的作用是提前终止循环。,45,与For语句相比,有下列几点不同:,(1)DoLoop语句不仅可用于循环次数已知的情况,而且可用于循环次数未知的情况,因此适用的范围更广。(2)DoLoop语句没有专门的循环控制变量,但一般应有一个专门用来改变条件表达式中变量的语句,使得随着循环的执行,条件趋于不成立(或成立),最后达到退出循环。,46,Do语句块ExitDo语句块LoopWhile|Until,说明:和形式1不同的是,在每次循环结束时测试条件。因此,二者的区别是如果一开始循环条件就不成立,则形式1中的循环体部分一次也不执行,而形式2中的循环体部分被执行一次。,形式2:,读程序:,例:试分析如下程序运行结束之后变量J的值。PrivateSubFun()DimJAsIntegerJ=10DoJ=J+3LoopWhileJ19EndSub,48,面向对象程序设计示例,例1:创建如下图所示的窗体“计算圆的面积和周长”。要求在文本框中输入了圆的半径后,单击“计算”按钮,在窗体的另外两个文本框中分别输出圆的面积和周长。,49,本例除了采用前面介绍的方法制作窗体外,最关键的是编写“计算”按钮的单击事件过程。,为按钮添加事件代码的方法是,用鼠标右键单击按钮,在弹出的快捷菜单中选择“事件生成器”命令,在打开的“选择生成器”对话框中选择“代码生成器”选项,转到VBE环境。,50,“计算”按钮的Click事件过程如下。PrivateSub计算_Click()DimrAsSingler为圆的半径DimsAsSingles为圆的面积DimLAsSingleL为圆的周长Const

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论