1 / 42

第 9 章 模块与 VBA

第 9 章 模块与 VBA. 本章要点. 模块的基本概念 VBA 的基本语法 使用 VBA 访问数据库的方法 VBA 程序的运行与调试方法 宏与 VBA 的关系. 9.1 模块的基本概念. 模块的分类 VBA 的开发环境 创建模块. 9.1.1 模块的分类. 类模块 标准模块. 9.1.2 VBA 的开发环境. VBA 开发环境 (VBE) 主要分为工具栏、代码窗口、工程资源管理器和属性窗口 4 部分。. 9.1.3 创建模块. 从模块进入 VBA 开发环境 从类模块进入 VBA 开发环境的方法有两种。

woody
Download Presentation

第 9 章 模块与 VBA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第9章 模块与VBA

  2. 本章要点 • 模块的基本概念 • VBA的基本语法 • 使用VBA访问数据库的方法 • VBA程序的运行与调试方法 • 宏与VBA的关系

  3. 9.1 模块的基本概念 • 模块的分类 • VBA的开发环境 • 创建模块

  4. 9.1.1 模块的分类 • 类模块 • 标准模块

  5. 9.1.2 VBA的开发环境 • VBA开发环境(VBE)主要分为工具栏、代码窗口、工程资源管理器和属性窗口4部分。

  6. 9.1.3 创建模块 • 从模块进入VBA开发环境 • 从类模块进入VBA开发环境的方法有两种。 • 从标准模块进入VBA开发环境的方法有3种。

  7. 9.1.3 创建模块 • 在模块中添加过程

  8. 9.1.3 创建模块 • 一个简单的模块实例

  9. 9.2 VBA编程基础 • VBA的数据类型 • 变量 • 常量 • 数组 • 运算符和表达式 • 表达式 • 常用内部函数

  10. 9.2.1 VBA的数据类型

  11. 9.2.2 变量 • 声明变量 • Dim MyName As String • Public MyName As String • 变量的作用域和生存期

  12. 9.2.3 常量 • 如果要声明一个常数,可以使用Const语句去声明,并且设置它的值;而在常数声明完之后,则不能加以更改或赋予新值。 • Public Const MyAge As Integer = 21 • Const MyAge As Integer = 21, MyWage As Currency = 8000

  13. 9.2.4 数组 • 数组是一组具有相同类型变量的有序集合,即数组变量实际上是一组顺序排列的同名变量。 • 数组元素即数组中的变量。用下标表示数组中的各个元素。 • 数组的声明方式和其他的变量是一样的,它可以使用Dim、Static、Private或Public语句来声明。 • 数组是否从0或1索引是根据Option Base语句设置的。如果Option Base没有指定为1,则数组索引从0开始。

  14. 9.2.4 数组 • 声明固定大小的数组 • Dim OurArray(8, 8)As Integer • 声明动态数组 • Dim DynArray() As Integer • ReDim <数组名>([<下界1> To ] <上界1>,[<下界2> To ] <上界2>,[,… ])[ As <数据类型>]

  15. 9.2.5 运算符 算术运算符

  16. 9.2.5 运算符 • 逻辑运算符

  17. 9.2.5 运算符 • 关系运算符

  18. 9.2.5 运算符 • 运算符的优先级 • 括号中的运算 • 算术运算 • 关系运算 • 逻辑运算

  19. 9.2.6 表达式 • 表达式的书写规则 • 乘号不能省略 • 括号必须成对出现,均使用圆括号,可以嵌套,但必须配对 • 表达式从左到右顺序书写 • 不同数据类型的转换

  20. 9.2.7 常用内部函数 • 数学函数 • 字符串函数 • 日期与时间函数 • 格式输出函数 • 类型转换函数 • MsgBox和InputBox函数

  21. 9.3 VBA的程序结构 • 顺序结构 • 选择结构 • 循环结构

  22. 9.3.1 顺序结构 • VBA语句书写规定 • 续行符(_) • 语句分隔符(:) • 当输入一行语句并按下回车键后,若代码行以红色文本显示,则表示该行语句存在错误,应该及时更正。 • 注释语句 • ' | Rem< 注释内容 > • 赋值语句 • <变量名> = <表达式> • 或 • <对象名> .<属性名> = <表达式>

  23. 9.3.1 顺序结构 • Debug.Print输出语句 • Print是输出数据、文本的一个重要方法,在VBA编程中,可以使用该语句将程序运行结果输出到立即窗口中,以便查看运行结果。 • [Debug.]Print|? [表达式][,| |;表达式…] • MsgBox和InputBox语句 • MsgBox语句的格式如下: • MsgBox “提示”[,按钮][,标题] • InputBox语句的格式如下: • InputBox “提示”[,标题][,默认][,X坐标值][,Y坐标值]

  24. 9.3.2 选择结构 • If语句 • 单条件If语句 If <条件表达式> Then <语句块> End If • 块结构条件语句 If <条件表达式1> Then <语句块1> [Else If <条件表达式2> Then <语句块2>] [Else If <条件表达式3> Then <语句块3>] … [Else <语句块n>] End If

  25. 9.3.2 选择结构 • Select语句 Select Case <测试表达式> [ Case <条件表达式1> [ <语句块1> ] ] [ Case <条件表达式2> [ <语句块2> ] ] … [ Case <条件表达式n> [ <语句块n> ] ] [ Case Else [ <语句块n+1> ] ] End Select

  26. 9.3.3 循环结构 • Do While|Until……Loop语句 Do [ While | Until 条件] [ 循环体] [ Exit Do ] Loop • Do……Loop While | Until语句 Do [ Exit Do ] [ 循环体] Loop [ While | Until < 条件> ]

  27. 9.3.3 循环结构 • For循环 For <循环变量>=<循环变量初值> To <循环变量终值> [ Step步长] [循环体] [Exit For] Next [循环变量]

  28. 9.4 过程的定义与调用 • 子过程 • 函数的定义与调用

  29. 9.4.1 子过程 • 子过程的定义 • [Private|Public][Static] Sub 子过程名([形参列表])[As 数据类型] • 语句块 • End Sub • 子过程的调用 • Call 子过程名[(实参列表)] • 或 • 子过程名[实参列表]

  30. 9.4.2 函数的定义与调用 • 函数过程的定义 • [Private|Public][Static] Function 函数过程名([参数列表])[As 数据类型] • 语句块 • 函数过程名=表达式 • End Function • 函数过程的调用 • (1)将函数过程返回值作为赋值成分赋给某个变量,即:变量=函数过程名([实参])。 • (2)将函数过程返回值作为某个过程的实参成分使用。

  31. 9.5 用VBA访问数据库 • 数据库引擎及其接口 • VBA访问数据库的类型 • ActiveX数据对象(ADO) • 程序实例

  32. 9.5.1 数据库引擎及其接口 • ODBC API • DAO • ADO

  33. 9.5.2 VBA访问数据库的类型 • 本地数据库,即Access数据库。 • 外部数据库,指所有的索引顺序访问方法(ISAM)数据库。 • ODBC数据库,符合开放数据库连接(ODBC)标准的C/S数据库,例如,Oracle、Microsoft SQL Server等。

  34. 9.5.3 ActiveX数据对象(ADO) • Connection对象,用于指定数据提供者,建立到数据源的连接。例如,可以用连接对象打开一个对Access(mdb)的连接。 • Command对象,表示一个命令。例如,可以用命令对象执行一个SQL存储过程或有参数的查询。 • RecordSet对象,表示数据操作返回的记录集。此对象和Connection对象是最重要的两个对象。 • Field对象,表示记录集中的字段数据信息。 • Error对象,表示数据提供程序出错时的扩展信息。

  35. 9.5.3 ActiveX数据对象(ADO) Dim cn As ADODB.Connection Dim rs As ADODB.RecordSet cn.Open<连接串等参数> rs.Open<查询串等参数> Do While Not rs.EOF … rs.MoveNext Loop rs.close cn.close Set rs=Nothing Set cn=Nothing

  36. 9.5.4 程序实例 • 为“图书管理系统”设计一个购书登记窗体,记录每一笔购书记录,它的功能是输入会员编号以后显示出该会员的积分以及他当前所享受的折扣,输入图书编号后显示出该书的定价,然后根据会员的购买数量计算出本次购书的金额,单击【保存记录】按钮后将会员编号、图书编号、购买数量和购买日期等信息添加到“购书”表中存档,另外,“会员”表中相应的积分会增加,“图书”表中相应的图书数量减少。该窗体的设计视图如下图所示,具体的代码参见本书的9.5.4小节。

  37. 9.5.4 程序实例

  38. 9.6 VBA的运行与调试 • VBA的错误处理 • 设置断点 • 调试工具的使用

  39. 9.6.1 VBA的错误处理 On Error Goto 标号 On Error Resume Next On Error Goto 0 “On Error Goto 标号” On Error GoTo ErrHandler … ErrHandler: Call ErrorProc ErrorProc …

  40. 9.6.2 设置断点 • 所谓“断点”就是在过程的某个特定语句上设置一个位置点以中断程序的执行。“断点”的设置和使用贯穿在程序调试运行的整个过程。 • 断点”设置和取消有4种方法,最常用的方法是:选择语句行,鼠标光标移至行首单击可以设置和取消“断点”。

  41. 9.6.3 调试工具的使用 • 在VBE环境中,右击菜单空白位置,弹出快捷菜单,选中【调试】选项,这时就会打开【调试】工具栏,如下图所示。

  42. 9.7 宏与VBA • 将窗体或报表上的宏转换为VBA代码 • 将全局宏转换为VBA模块

More Related