




已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章 VBA编程语言,学而不思则罔,思而不学则殆。,全体编者,Compute Center, Qiqihar University,本章内容提要:,VBA概述 VBA编程基础 VBA基本控制结构 VBA模块 面向对象程序设计,一、VBA概述,1、VBA介绍 VBA是(Visual Basic for Application)是Microsoft Office系列软件的内置编程语言。 Basic语言 Visual可视化的程序设计 2、与宏的比较 在Access中,VBA与宏的作用类似,只是宏由系统给定,而VBA是需要用户自己编写程序。但在完成下列操作时,必须使用VBA。 数据库的移植 建立用户自定义函数,3.VBA编程环境,VBE(Visual Basic Editor) 打开VBE窗口的方法: 独立程序模块 “数据库”窗口“模块”对象选项“新建”按钮 菜单栏“工具” “宏” “ Visual Basic编辑器”命令项 绑定型程序模块 VBE窗口的组成 标准工具栏、工程窗口、属性窗口 代码窗口,操作演示,3.VBA编程环境,设计人员可以在代码窗口中进行代码编写、修改与调试等处理。 “视图”菜单: 对象浏览器 立即窗口 本地窗口 监视窗口 在标准模块中调试程序示例,二、VBA编程基础,数据类型 常量和变量 运算符与表达式 常用内置函数的使用方法 数组,1.数据类型,VBA提供的基本数据类型主要有字符串型数据和数值型数据,此外还提供了货币、对象、变体等数据类型。VBA共有12种数据类型。此外用户还可以根据以下类型用Type自定义数据类型。 有效使用数据类型,应该尽量明确变量的具体数据类型。如: Dim X As Integer,VBA基本数据类型,2.常量和变量,常量:在程序运行过程中保持不变的量。 常量的种类: 直接常量,如:344、3.14159、-23等; 符号常量,如:const pi=3.14; 固有常量,如: acForm、adAddNew、vbCuruency等; 系统定义常量,如True、False、Null等。 常量的数据类型参考-VBA基本数据类型 符号常量的声明和使用: const 符号常量名=常数,2.常量和变量,变量:程序运行过程中,值可以改变的量。 变量的类型参考-VBA基本数据类型。 变量的定义: 使用类型符定义,如:BookNumber%=1234 【例8.6】 使用Dim语句定义,如:Dim I As integer 【例8.7】 使用DefType语句,如:DefInt a,b,c,e-h 【例8.8】 变量的命名同标识符的命名,思考:变量与常量的区别?,Sub ConstSample( ) Const PI As Single =3.1415926 PI=3.14 错误,PI的值不能改变 r%=5 S!=PI*r2 End Sub,3. 运算符与表达式,VBA中基本的运算符有五种:算术运算符、关系运算符、逻辑运算符、字符串运算符、对象运算符。 表达式是由运算符、函数和数据等内容组合而成。 根据运算符的不同,可以将表达式分成以下几类:算术表达式、关系表达式、逻辑表达式、字符串表达式和对象表达式。,算术运算符与表达式,算术运算符 + 加、- 减 、* 乘 、/ 除 整除、MOD求余 、乘方 例如: 3+5、5-4、5*4、4/6 43=1、 7 MOD 4=3 、23=8 运算符的优先级: 括号取负乘方*/MOD+- 算术表达式 -4+3*6 MOD 5(24),关系运算符和表达式,关系运算符: 大于、不等于 =大于等于、6 (true 或 1) 4-20 (false 或 0),逻辑运算符与表达式,逻辑运算符: And逻辑与、OR逻辑或、Not逻辑非 逻辑运算结果是: 真(true或-1表示)或 假(false或0表示) 优先级:NotAndOr 逻辑运算的运算规则是:,逻辑运算的运算规则,例如: 2+34 And 62 2-49 Not 4+510,字符连接符与表达式,字符连接符: +:连接字符串 &:可以将不同类型变量连接成字符串 例如: a$=“123”:b$=“abc” c$=a$+b$ (或c$=a$&b$) 则C$的值为“123abc” 思考:C&1和C+1是否正确?,对象运算符与表达式,对象运算符: !对象引用符 .对象属性引用符 例如: Forms!学生成绩单 打开学生成绩单窗体 Command1.Caption 引用命令按钮Command1的Caption属性,例:表达式书写规则,其VBA表达式为: (-b+Sqr(b2-4*a*c)/(2*a) 书写规则说明: 括号要匹配 乘号不能省略 表达式从左到右书写 使用表达式生成器创建表达式,操作演示,如何使用表达式,表达式及其说明,4.常用内置函数的使用方法,内置函数的调用格式:函数名(参数) 例如:求Sin(30) VBA表达式为: Sin(3.14 * 30 / 180) 根据函数返回值的类型,可以将函数分为: 数值型函数 字符串函数 日期/时间函数 类型转换函数,5.数组,数组是由一组具有相同数据类型的变量构成的集合。 数组定义格式为: Dim 数组名( 下标下界 to 下标上界限,下标下界 to 下标上界限 ) As 数据类型 例如【例8.9】 Dim A(3) as Integer Dim B(3,3) as Integer,注意:Option Base n 的作用,B(0,1),数组的类型,按数组元素个数是否可变分为: 固定数组 动态数组 动态数组的定义方法: 先使用Dim来声明数组 再用ReDim来指定数组元素个数 加保留字Preserve 来保留以前的值 否则,使用ReDim后,数组元素的值会被重新初始化为默认值。,数组的使用,数组的赋值 例:定义动态数组,并求各元素的和。 Private sub SumArray( ) Dim S,A( ) as integer Redim A(2) A(0)=1:A(1)=2 Redim preserve A(3) A(2)=3 S=A(0)+A(1)+A(2) End Sub,如果去掉preserve关键词结果会如何,小结,本部分主要介绍了VBA及其编程环境、VBA的基本数据类型、常量和变量、运算符与表达式 、常用内置函数的使用方法和数组的基本概念。 其中,重点内容是VBA的基本数据类型和运算符与表达式 ;难点内容是常用内置函数的使用方法和数组的基本概念。,课堂练习,课堂练习 1、VBE窗口的基本组成及其打开方法? 2、常量与变量的区别? 3、利用VBA语法书写表达式?,三、VBA基本控制结构,程序语句 程序语句的书写格式 程序的基本语句 VBA程序的基本控制结构有三种: 顺序结构 选择结构 循环结构,1.程序语句的书写格式,VBA程序语句有自己的书写格式,主要规定如下: 不区分字母的大小写。 在书写标点符号和括号时,要用西文格式。 在语句中的关键字的首字母均转换成大写,其余字母转换成小写。 自定义的变量和过程名,以第一次定义的格式为准。 续行的行尾加上续行符(空格+下划线“_”)。 在一行上写多条语句,语句间用冒号“:”分隔。 输入一行语句并按Enter键,VBA会自动进行语法检查,如果语句存在错误,该行代码以红色提示(或伴有错误信息提示)。,2.程序的基本语句,程序的功能是靠执行语句来实现的 VBA中的几个常用的基本语句 注释语句 声明语句 Option语句 赋值语句 With语句 On Error语句,注释语句 、声明语句和option语句,注释语句 使用Rem语句或用单引号“”实现 声明语句 声明语句用于命名和定义过程、变量、数组或常量 例如,dim a as integer option语句 Option语句在模块的开始部分使用,用于对环境状态进行设置。 Option Explicit Option Base 0|1,例如: Str1=“图书馆借阅管理系统“ Str1变量记下图书馆借阅管理系统的名称 Str2=“Access数据库基础教程“ Rem Str2变量记下“Access数据库基础教程“字符串,赋值语句,功能:给变量或常量指定一个值或表达式。 格式: let 变量名=表达式 对象名.属性名=表达式(若对象名省略,则默认对象为当前窗体或报表) 【例8.15】赋值语句举例,Sub program_clause( ) BookName=“Access数据库基础教程“ BookPrice=23.40 Let BookNumber=1200 BookTotalPrice= BookNumber* BookPrice Form1.Caption=“图书馆借阅管理系统“ Text1.text= Text2.text End Sub,With语句,With语句 对象执行一系列的语句,而不用重复指出对象的名称。 格式: With 对象 .语句 End With 【例8.16】改变Command1按钮的属性。,Sub program2( ) With Command1 .Caption= “确定“ .Top=500 .Enabled=True .FontSize=14 End With End Sub,On Error语句,常见的错误主要发生在以下3个方面: 语法错误 运行错误 逻辑错误 构造错误陷阱的常用语句: On Error GoTo On Error GoTo 标号 On Error Resume Next On Error GoTo 0 Err对象 Error()函数和Error语句,【例8.17】错误捕捉与处理举例。,Private Sub Myproc() On Error GoTo Errlabel Errlabel: End Sub,3.顺序结构,常用的几个输入输出方法: 输入: 使用文本框 使用函数InputBox 格式:InputBox(提示信息,标题,默认值,对话框水平位置,对话框垂直位置) 输出: 使用文本框 使用函数MsgBox 格式:MsgBox (显示的信息,规定显示按钮数量,标题),例:摄氏温度转换为华氏温度,程序代码如下: Sub CtoF() Dim C as integer , F as integer C=inputbox(“请输入摄氏温度”) F=9/5*C+32 Msgbox(f) End sub,操作演示,4.选择结构,(1)行if语句 格式:if then 条件:是关系表达式或逻辑表达式。 语句:是可以执行的任何操作。 功能:如果条件成立,执行,如果条件不成立,且else子句没有省略,则执行。,例:计算表达式测试程序1,程序代码如下: Sub test() Dim x , y As Single x=InputBox(“请输入数据:”) If x0 then y=x2+x+1 else y=x2+5*x-1 Debug.print y End Sub,操作演示,例:使用控件编程,Private Sub 命令1_Click() 单击确定按钮 Dim x As Single 文本0.SetFocus:x = 文本0.Text If x0 Then 文本0.Text=x2+x+1 Else 文本0.Text=x2+x1 End Sub Private Sub 命令2_Click()单击重新输入按钮 文本0.SetFocus:文本0.Text = “ End Sub,操作演示,(2)块 if 语句,格式: if then else end if,用块if语句改写上例程序1,Sub test() Dim x ,y As Single x=InputBox(“请输入数据:”) If x 0 Then y = x 2 + x + 1 Else y = x 2 + x 1 End if Debug.print y End sub,操作演示,用块if语句改写上例程序2,Private Sub 命令0_Click() 单击确定按钮 Dim x As Single 文本0.SetFocus x = 文本0.Text If x 0 Then 文本0.Text = x 2 + x + 1 Else 文本.Text = x 2 + x 1 End if End Sub,操作演示,例:输入三个数,按由小到大顺序排序,输出排序后的数。,测试编程: 利用模块的过程,输入三个数,按由小到大顺序排序,输出显示排序后的数。 事件驱动编程: 将三个数分别输入到三个文本框中,单击“排序”按钮后,三个数按由大到小的顺序排序;单击“重新输入”按钮后,清空文本框,以便重新输入。 完成步骤: 创建界面 设置控件属性 编写代码,操作演示,利用模块的过程编程:,Sub Sort() Dim a, b, c, t As Single a = Val(InputBox(“请输入数据a:“) b = Val(InputBox(“请输入数据b:“) c = Val(InputBox(“请输入数据c:“) If a b Then t = a: a = b: b = t End If If a c Then t = a: a = c: c = t End If If b c Then t = b: b = c: c = t End If MsgBox a & “,“ & b & “,“ & c End Sub,利用事件驱动编程:第一步,创建界面:,利用事件驱动编程:第二步,设置控件属性,利用事件驱动编程:第三步,编写代码 Command1_Click()事件过程代码 接收数据 比较数据并排序 输出数据 Command2_Click()事件过程代码 清空文本框,Command1_Click() 过程代码,Dim a, b, c, t As Double 接收数据 Text1.SetFocus:a = Val(Text1.Text) Text2.SetFocus:b = Val(Text2.Text) Text3.SetFocus:c = Val(Text3.Text) 比较数据并排序 If a b Then t = a:a = b: b = t If a c Then t = a:a = c: c = t If b c Then t = b:b = c: c = t 输出数据 Text1.SetFocus:Text1.Text = LTrim(Str(a) Text2.SetFocus:Text2.Text = LTrim(Str(b) Text3.SetFocus:Text3.Text = LTrim(Str(c),Command2_Click() 过程代码,清空文本框 Text3.SetFocus Text3.Text = “ Text2.SetFocus Text2.Text = “ Text1.SetFocus Text1.Text = “,(3)select case语句,格式: Select Case Case Case Case Else End Select 功能:当测试表达式等于表达式n时,程序就执行该表达式下的语句组;如果没有等于测试表达式的表达式,则执行Case Else后的语句组。,Case项后面的值有三种形式:,可以是单个值或几个值。如果是多个值,各值之间用逗号分隔。 如:case 1,3,5 表示1,3,5三个数 可以用关键字to 来指定范围。 如:case 3 to 5 表示3到5的数 可以是连续的一段值。这时要在Case 后面加Is。 如:case Is3 表示大于3的所有数,例:设y表示运费,x表示吨数,问题描述: 创建一个窗体,包括:两个标签、两个文本框、两个命令按钮。 输入货物吨数时,单击“计算”按钮,显示出运费;单击“清除”按钮,清空两个文本框。,操作演示,5.循环结构,for循环结构 Do循环结构 While循环 Goto语句 循环嵌套,(1)for循环结构,格式: for=tostep步长 循环体 next 循环变量 功能: 循环变量赋初值; 循环变量与终值比较,即:循环变量是否超过终值?若超过,则终止循环;若没超过,则执行循环体,然后,循环变量增加一个步长。,例:计算s=1+2+3+100,使用For循环结构 Sub Sum_For() Dim n As Integer, s As Integer Dim t As Integer s = 0 For n = 1 To 100 Step 1 s = s + n Next n Debug.Print “1+2+3+100=“, s End Sub,(2)Do循环结构,5种格式:,例:计算s=1+2+3+100,使用Do循环结构 Sub Sum_Do() Dim n As Integer, s As Integer Dim t As Integer s = 0 Do While n = 100 s = s + n n = n + 1 Loop Debug.Print “1+2+3+100=“, s End Sub,(3)While循环,格式: While 条件 Wend 功能: 当条件为真时,执行循环体中的语句,遇到Wend时,程序跳转到While处,继续判断条件,直到条件为假,退出循环,执行Wend后的语句。 【例8.27】求N!。,【例8.27】求N!,程序代码如下: Public Sub 阶层N() Dim n, i As Integer n = InputBox(“请输入一个整数:“) i = 1 total = 1 While i = n total = total * i i = i + 1 Wend MsgBox “N的阶层为:“ & total End Sub,(4)goto语句,格式: GoTo 标号 功能: 程序执行过程中,遇到GoTo语句,会无条件地转到其后的“标号”位置,并从该位置继续执行程序。 说明: 标号需英文开头,并后加“:” 一般与if语句配合使用 【例8.28】求1100之和。,【例8.28】求1100之和。,程序代码如下: Public Sub cc() Dim i, sum1 As Integer sum1 = 0 i = 1 label: sum1 = sum1 + i i = i + 1 If i = 100 Then GoTo label End If MsgBox sum1 End Sub,(5)循环嵌套,格式: For 循环变量=初值 To 终值step 步长值 For 循环变量=初值 To 终值step 步长值 Exit For Next 循环变量 Exit For Next 循环变量,While 条件 Wend,【例8.30】输出正三角形,程序代码如下: Private Sub 三角形() For i = 1 To 8 For j = 1 To 8 - i Debug.Print “ “; 在立即窗口输出 Next j For k = 1 To 2 * i - 1 Debug.Print “*“; Next k Debug.Print Next i End Sub,小结,本部分主要讲述了VBA的基本语句和基本的语句控制结构,主要包括顺序、选择、循环三种。 其中,重点内容是选择和循环结构;难点内容是循环结构。,课堂练习,课堂作业 1、Access VBA有哪些程序控制语句? 2、选择结构的几种形式? 3、for循环的结构? 4、do循环的5种格式?彼此之间的区别?,四.VBA模块,1、模块对象 Access数据库7个对象之一,其实质就是没有界面的VBA程序。 模块一般是由声明、语句和过程组成的集合,作为一个已命名的单元存储在一起,并对 VBA 代码进行组织。 模块可分为两种基本类型: 类模块 标准模块 建立一个标准模块示例,2.过程,过程由VBA语句组成,是一段相对独立的代码。 过程将程序分割成较小的程序单元,这样就可以简化程序设计任务。 创建过程 过程可以分为: Sub 过程(子过程) 事件过程 Function 过程(函数),Sub过程,定义Sub过程的格式: Private|Public|StaticSub (参数表) 语句块 End Sub Sub过程的调用,两种方式: Call 过程名(实际参数表) 直接使用过程名调用 例如,Hello过程,事件过程,事件过程是与对象的事件相关联的程序。 为窗体、报表或控件的事件来编写事件程序,这样当该事件被引发时便会执行其事件程序来完成所需的处理。 例:在窗体上建立一个“获得当前时间”按钮,按下按钮便能执行VBA程序代码来显示当前时间。 方法一:利用窗体的控件中的事件标签 方法二:利用“视图” 菜单中的“代码”命令,操作演示,Function过程,定义Function过程的格式: Private|Public|StaticFunction (参数表) As类型 End Function 调用Function过程 与使用VBA内部函数相同 例如,GetCurDate过程,模块与过程,注意:过程不是Access的一个独立对象,不能单独保存,只能存在于模块中。,sub,Function,3.参数传递,在调用过程中,主调过程和被调过程之间的数据传递。即主调过程的实参传递给被调过程的形参,然后执行被调过程。 实参向形参的数据传递有2种方式: 值传递( ByVal) 地址传递(ByRef) * 说明: 值传递时,形参的变化不影响实参; 地址传递时,形参与实参使用相同的存储单元。,【例8.34】 参数传递示例,问题描述: 创建有参子过程Test(),通过主调过程Main_Click()调用,观察实参值的变化。 程序代码:,被调子过程Test() Sub Test (ByRef x As Integer) 形参x说明为传址形式的整型量 x =x+10 改变形参x的值 End Sub 主调过程Main_click() Private Sub Main_Click() Dim n As Integer 定义整型变量n n =6 变量n赋初值6 Call Test(n) Msgbox n 显示n值 End Sub,4.过程和变量的作用域,过程或变量可被访问的范围称为过程或变量的作用域。 过程的作用域: 模块级(使用Private) 全局级(使用Public) 变量的作用域 表8.2 局部变量 【例8.35】 模块变量 【例8.36】 全局变量 【例8.37】,五、面向对象程序设计,1、理解面向对象编程: 面向对象是观察世界和编写计算机程序的自然方式。 优点:结构清晰完整,数据独立、易于管理 缺点:性能方面要做些牺牲 2、理解类与对象: 在面向对象的方法中,类是具有共同属性、共同行为方法的对象的抽象。 一个对象代表应用程序中的一个元素 窗体或是其上的按钮、标签和文本框等,对象三要素,一个对象通过属性、方法和事件来描述。 属性是指一个对象所具备的特征 比如:按钮控件的Caption属性 方法是指对象可以执行的动作 比如:文本框控件可以SetFocus方法 事件是指对象所能检测的动作 比如,按钮的Click事件,3. 对象声明和引用,(1)对象的声明 声明对象变量的语法格式: Dim 对象变量 As New 对象类 说明: 使用new,则不必使用Set引用特定对象 Set 对象变量= New 对象表达式 例如,【例8.38】 Dim myForm As New Form Dim myText As TextBox Set myText=New TextBox,(2)对象的使用,对象引用一般格式: !.| 引用运算符:!和 . 例如: Forms!登陆窗体!text0.text=“1” DoCmd.Close SELECT 学生表.姓名 FROM 学生表,对象引用规则注意事项,引用规则:引用窗体或报表必须从集合开始。 例如: Forms!窗体1.Caption Reports!学生成绩!学分+10 Reports!学生成绩!学分.Visible Forms!窗体1!Label1.FontName Label1.FontName(当前窗体),改变对象的属性设置,例如: Forms!窗体1.Caption=Date&Space(2) Label1.FontName=“隶书” Label1.FontBold=True Label1.FontSize=18 Label1.FontItalic=True Text0.FontColor=255 Text0. Height=Text0.Width*0.5,4. Application的对象模型,VBA使用Application对象操作当前活动的窗体、报表、数据访问页及它们所包含的控件。 Application对象层次关系如图 Application对象 Form对象、Forms集合和Control对象、Controls集合 DoCmd对象,(1)Application对象,Application对象引用活动的Access应用程序 创建Application类的新实例: Dim appAccess As Object Set appAccess=CreateObject(“Access.Application“) 例如,【例8.40】,Sub GetAccessData() Dim strDB As String Dim appAccess As Access.Application StrDB=”C:Program FilesMicrosoft OfficeOffice11SamplesNorwind.mdb” AppAccess.OpenCurrentDatabase strDB aapAccess.DoCmd.OpenReport “图书编目表“ End Sub,(2)Form对象、Forms集合和Control对象、Controls集合,Forms是一个集合对象,Form是Forms集合中的一个成员。 Forms集合包含Access数据库中当前打开的所有窗体。 每个窗体对象都有一个Controls集合,该集合包含了窗体上的所有控件。 例如, 【例8.41】,Sub GetControlsData( ) Forms!OrderForm!NewData 隐式引用 Forms!OrderForm.Controls!NewData 显示引用 End Sub,(3)DoCmd对象,DoCmd对象可以调用Access内置的方法 DoCmd又可以看作AccessVBA中提供的一个命令 【例8.42】DoCmd对象应用举例 DoCmd.OpenForm “图书编目表“ 说明: DoCmd对象的大多数方法都有参数,某些参数是必需的,其他一些是可选的。,5.事件驱动工作方式,事件包括事件的触发和执行程序两方面。 一个事件可对应一个程序-事件过程或宏。 在Access中事件一旦被触发,系统马上就去执行与该事件相关的程序(事件过程或宏)。执行完毕后,系统又处于等待某事件发生的状态,这种程序执行方式应用程序的事件驱动工作方式。 事件触发方式可细分为3种: 由用户触发、由系统触发、由代码引发,例: 改变文本框中日期的颜色,若单击主体,窗体文本框中的日期即以红色显示;若双击主体,该日期则以蓝色显示。 理解事件驱动: 主体节中,单击右键,在菜单中选择事件生成器。 在代码窗口中观察: Private Sub 主体_Cilck( ) Text0.ForeColor=vbRed 文本框前景色设为红色 End Sub “双击”事件代码类似:Text0.ForeColor=vbBlue 思考:使用Text0.Move方法和MouseDown事件使文字跟随鼠标移动。,操作演示,小结,本章主要讲解了面向对象编程(OOP)基础、VBA概述、VBA编程基础、VBA基本控制结构等方面的知识。 教学重点: VBA语法规则,选择结构及循环结构 教学难点: 选择结构,循环结构,课堂练习,课堂作业 1、模块在结构上由哪几部分组成? 2、过程有几类?有何区别? 3、什么是对象和类?举例说明。 4、对象的使用方法?,附录:,VBE窗口的组成 代码编辑器 【例8.18.5】 标识符的命名规则 使用数值型函数,字符串函数 使用日期/时间函数,类型转换函数 计算费用窗体与主要代码 新建模块对象示例 表8.2变量使用规则和作用范围 【例8.3537】 常用属性 常用方法 常用事件1-2,VBE窗口的组成,标准工具栏,工程窗口,属性窗口,代码窗口,视图切换,插入模块,运行、中断、停止,设计模式,工程资源浏览器,属性窗口,对象浏览器,查看代码,查看对象,切换文件夹,对象框,属性列表,代码编辑器,系统自动生成事件过程框架,在此处填写事件响应代码,选择对象框,选择对应的事件过程,【例8.1】程序的调试过程,问题描述: 建立两个标准过程,功能为:求1100之和和由键盘输入学生考试分数判定学生的成绩等级,并运行调试这两个标准模块。 操作步骤: 打开VBE窗口,录入代码 设置断点 运行时,可以查看程序运行状态(F9) 运行程序,调试程序 利用立即窗口、本地窗口、监视窗口协助调试,操作演示,【例8.2】变体类型定义应用举例,问题描述: 变体类型定义应用 示例代码:,Dim MyVar As Variant 变体类型也可用Dim定义 MyVar = 98052 a = 20 a = “1234“ a = Null 变量a没有显式声明,a的类型发生三次变化 MyVar=a,【例8.3】对象类型定义应用举例,问题描述: 对象类型定义应用 示例代码:,Dim objDb As Object Set objDb=OpenDatabase _ (“c:高校图书馆管理系统高校图书馆管理系统.mdb“),【例8.4】自定义类型定义举例,问题描述: 自定义类型定义举例 示例代码:,Type Book BookName As String*20 定义定常字符串变量存储书名 BookDate As Date 定义日期变量存储出版日期 BookNumber As Integer 定义整型变量存储书的数量 End Type,用户自定义类型的语法格式如下: private|public Type 数据类型名 变量名1 As 数据类型 变量名2 As数据类型 End Type,【例8.5】符号常量定义应用举例,问题描述: 对象类型定义应用 示例代码:,Const PI = 3.1415926 Public Sub area() Dim r As Integer Dim l, area As Single r = InputBox(“请输入圆的半径“) l = 2 * PI * r : area = PI * r * r h = MsgBox(“周长:“ & l & “面积:“ & area, 1 + _ vbQuestion + vbDefaultButton1 + 0, “计算圆的周长和面积“) End Sub,标识符的命名规则,当在VBA的模块中为常数、变量等标识符命名时,必须遵循下列规则: 只能由字母、数字、汉字和下划线组成,不能含有空格和除了下划线字符“_”以外的其他任何标点符号,长度不能超过255。 例如,dim sys_AC as string 必须以字母开头,不区分大小写。 例如,Bxy、BXY、BxY、bxy系统都认为是相同的。 不能和VBA保留字重名。 例如:不能以IF命名一个变量。,使用数值型函数,问题描述:计算数学表达式的值。,Sub Expression() Dim s S=y*y+abs(x)+exp(3) +sin(30*3.14/180)-sqr(x*y)+log(3) Msgbox “s=“ & s end sub,使用字符串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东省清远市清城区中考一模化学试题(含答案)
- 济南工程职业技术学院《藏药药物分析学》2023-2024学年第二学期期末试卷
- 天津财经大学珠江学院《传统文化艺术》2023-2024学年第二学期期末试卷
- 商丘职业技术学院《互联网医疗》2023-2024学年第一学期期末试卷
- 豫章师范学院《物联网控制》2023-2024学年第二学期期末试卷
- 浙江同济科技职业学院《书法鉴赏》2023-2024学年第一学期期末试卷
- 江苏省扬州市安宜高中、汜水高中联考2025届高三下学期第18周物理试题考试试题含解析
- 四川省宣汉县2025届中考化学试题原创模拟卷(六)含解析
- 辽宁省丹东市五校协作体2025年高三第一次教学质置检测试题语文试题含解析
- 钦州幼儿师范高等专科学校《香料香精生产工艺学》2023-2024学年第二学期期末试卷
- 纺织材料创新与应用
- 2015-2024年十年高考生物真题分类汇编专题26实验与探究(全国)
- 早产临床防治指南(2024版)解读
- 全国身份证前六位、区号、邮编-编码大全
- 防火巡查、检查和火灾隐患整改制度(2篇)
- 外包服务行业纠纷处理方案
- 电子商务安全导论
- 2024年废品收购合同转让协议
- 深圳市保障性住房标准化设计图集(一)
- 中考数学函数一次函数复习课件
- 全套教学课件《工程伦理学》
评论
0/150
提交评论