1 / 243

第 10 章 VBA 程序设计

第 10 章 VBA 程序设计. VBA 概述 VBA 编程语言基础 VBA 的编程环境 模块与过程 面向对象程序设计基础. 第 10 章 VBA 程序设计.

mikaia
Télécharger la présentation

第 10 章 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. 第10章 VBA程序设计 • VBA概述 • VBA编程语言基础 • VBA的编程环境 • 模块与过程 • 面向对象程序设计基础

  2. 第10章 VBA程序设计 • VBA是Visual Basic for Applications的简称。它实际上是Visual Basic编程语言的一个子集。VBA从语言功能上与Visual Basic程序语言相互兼容,这使得具有Visual Basic编程基础的用户能够迅速地过渡到使用VBA进行数据库开发。使用VBA开发的程序一般保存在Access的模块中,以供Access的“宏”或窗体来调用。

  3. 第10章 VBA程序设计 • 使用VBA的优点 • 能进行错误处理 • 运行速度快 • 功能更强大 • 控制能力更强 • 与外部交互的能力更强

  4. VBA编程环境(VBE) • VBA的编程环境Microsoft Visual Basic Editor(VBE)是用户编写程序、运行程序和调试程序的工作环境。

  5. 启动VBE程序编辑器

  6. 启动VBE程序编辑器

  7. 启动VBE程序编辑器 • 法三 • Access中打开相关的数据库。 • 单击数据库窗口中对象下的“模块”按钮, • 双击要查看或编辑的模块。

  8. VBE程序编辑器 从视图菜单选择窗口和工具栏来启动所需窗口和工具栏。

  9. VBE操作界面

  10. VBE中的窗口 • 代码窗口:编写、显示以及编辑VBA代码。 • 立即窗口:立即执行代码,不保存。 • 监视窗口:显示当前程序中所定义的监视表达式的值 。

  11. 对象浏览器

  12. 工程资源管理器

  13. 代码窗口 选择[模块]对象,再单击[新建]按钮 打开代码窗口 工程窗口

  14. 属性窗口 • 属性窗口可以显示选定对象的属性,而且还可以对这些属性进行修改,如果选定了多个对象,属性窗口会列出所有控件的共同属性。

  15. “标准”工具栏 “编辑”工具栏

  16. VBA编程语言基础 • VBA编程语言的基础部分是面向过程的程序设计语言。它是为完成某项任务而事先写好的命令、语句序列。这些命令、语句序列以模块的形式存起来。通常这些语句包含常量、变量、运算符、函数数据库对象等。

  17. VBA数据类型 符号 取值范围 占内存大小 默认值 Byte(字节) 0~255 1字节 0 Integer(整型) % −32768~32767 2字节 0 Long(长整型) & −2147483648~2147483647 4字节 False VBA的数据类型 • 基本数据类型 • 字符串型、数值型数据、字节、货币、日期、布尔和变体数据类型等。

  18. Boolean(布尔) True 或者False 2字节 0 Single(单精度) ! −3.4E38~3.4E38 4字节 0 Double(双精度) −1.8E308~4.9E324 8字节 0 Currency(货币) @ −922,337,203,685,477.5808~922,337,203,685,477.5807 8字节 0 String(字符串) $ 根据实际字符而定 11+字符串长 空串 Date(日期) 100年1月1日~9999年12月31日 8字节 0 Object(对象) 任何可用对象 4字节 空 Variant(变体) 数值为双精度,字符 数值为16字节 字符为22+字符串长 空 VBA中的基本数据类型

  19. VBA的标识符 • 标识符是程序中常量、变量、过程等对象的名字。 • 标识符的规则: • 第一个字符必须是字母 • 字符数不超过255个 • 不能与VBA的关键字同名 • 不能使用! @ & $ #和空格

  20. VBA常量、变量和表达式 • 常量 • 常量是指在程序执行的过程中,其值不会发生改变的量。 • 在程序中引入常量的主要目的是提高程序的可读性,使程序更容易理解,并且可以使代码更容易维护。

  21. VBA常量、变量和表达式 • 常量 • 在程序执行的过程中,其值不会发生变化的量。 • 例: • 3.1415926 • “四川大学” • #9/1/2005#

  22. VBA常量 • 符号常量 • 符号常量多用来表示在VBA模块中其值不变的量。它是由用户定义的模块级常量。定义常量后,可以在以后需要时自由地使用它们。但不能对其重新赋值 • 格式: Const <常量名>=<表达式> • 例:const PI=3.1415926 • const MYSchool=“四川大学” • const Mybirth=#01/01/1990#

  23. VBA常量 • 固有常量(内置常量) • 在VBA中有一些事先定义好的常量,我们称之为固有常量,或内置常量。 在宏或VBA代码中直接使用。 • Visual Basic库中的固有常量都以“vb”开头。大约有700多个这样的固有常量。 • Microsoft Access库中的固有常量以“ac”开头, • ADO(ActiveX Data Object(ActiveX数据对象)库中的固有常量则以“ad”开头。 • 例如:acForm,adAddNew,vbCurrency

  24. VBA常量 • Access系统常量 • 系统定义有3个常量:True、False和 Null。 • 系统常量可在所有应用程序中使用。 • <>,!=

  25. VBA常量、变量和表达式 • 变量 • 变量是在程序执行过程中其值可以发生变化的量。变量是存储程序运行时所产生值的地方。每个变量都有变量名,用户是通过变量名来访问内存中的数据的。

  26. VBA常量、变量和表达式 • 变量的命名 • 变量名须以字母开头,其后只可以跟字母、数字和下划线“_”。 • 变量名不能超过255个字符,而且中间不能包含句点或类型说明符号。 • VBA对变量名的大小写均可,即“abc”与“ABC”同名。

  27. 例如,下面都是合法的变量名: • Abc_1 • B123C • T1 • 而下面的变量名都是不合法的: • 1ABC • ABC 1 • T,1 • ABC%A

  28. VBA常量、变量和表达式 • 变量的作用域和生命周期 • 变量的作用域指的是变量在整个程序中被认知的范围。 • 变量的生命周期则是说明变量存在的时间范围。 • 未声明的是变体型 a,b,c,d A,b,c,e A,b,c,f 通用声明

  29. VBA常量、变量和表达式 • 声明变量 • 使用类型说明符号声明变量 • 变量的类型符号(直接使用): • %(Integer,整型) • &(Long,长整型) • !(Single,单精度实型) • #(Double,双精度实型) • $(String,字符串) • @(Currency,货币) x%=123 y#=456.78 z$="Hello"

  30. VBA常量、变量和表达式 • 使用Dim语句声明变量 • 格式 Dim <变量名> [ As <数据类型>] • 例如: • Dim x As Integer     声明了一个整型变量x • Dim y As String 声明了一个字符型变量y • Dim z As Date 声明了一个日期型变量z • Dim x As Integer,y,z As double • 使用Dim语句说明变量称为显式声明。而如果不用Dim语句说明直接使用的变量就是变体型变量。

  31. VBA常量、变量和表达式 • 声明变量 • 例: • Dim x As Integer • Dim x As Integer,y,z As double

  32. 本地变量:仅在声明变量的过程和函数中有效。 • Dim 变量名 As 数据类型 • 私有变量:对当前模块中所有函数和过程都有效。 • Private 变量名As数据类型 • 公共变量:在所有模块的所有过程和函数都可以使用。 • Public 变量名As数据类型

  33. VBA常量、变量和表达式 • 使用Type语句声明变量 • 定义的类型是由用户自己定义的一种数据类型。它可以包含多个基本数据类型或一个已定义的Type类型。 • 使用Type语句定义一个名为Teacher的数据类型: • Type Teacher • ID As Long 教师编号为长整型 • Name As String 教师姓名为字符型 • Age As Date 教师年龄为日期型 • End Type • Dim ta As Teacher

  34. 函数 • 函数是数据运算的一种特殊形式,用来实现某些特定的运算。而有些运算要求有时会反复用到,因此,在VBA中会将有些常用的东西以内部系统函数的形式出现。这样当用户需要时可以直接调用。

  35. 函数 • 调用函数: • Call <函数名> ([<参数1>][,<参数2>] …) • <函数名> [<参数1>][,<参数2>] … • 变量 = <函数名> ([<参数1>][,<参数2>] …)

  36. 函数 • 函数的分类: • 系统函数(系统内部函数) • 用户自定义函数(用户根据需要自己编写的函数) • 根据函数的返回值的类型,函数可以分为数值型、字符串型、日期/时间型和类型转换型

  37. 数值型函数(在立即窗口中测试) 表10-2 VBA常用数值函数

  38. 数值型函数 • ?abs(-1),abs(1),abs(0) • 1 1 0 • ?exp(1),exp(0) • 2.71828182845905 1 • ?int(12.3),int(-12.3),int(12.5) • 12 -13 12 • ?rnd(x),rnd(x+1) • 1.953125E-02 1.401764E-02

  39. 数值型函数 • ?round(1),round(1.4),round(1.5) • 1 1 2 • ?round(1.53,1),round(1.55,1) • 1.5 1.6 • ?sgn(2),sgn(-2),sgn(0) • 1 -1 0 • ?sqr(9),sqr(4),sqr(0) • 3 2 0

  40. 字符串型函数

  41. 字符串型函数 • ?asc("abc"),asc("bca"),asc("cab") • 97 98 99 • ?chr(99),chr(98),chr(97) • c b a • ?len("abc"),len(" abc"),len(" abc "),len(" abc 1 ") • 3 4 5 7 • ?left("abcde",2),right("abcde",2),mid("abcde",3,2) • ab de cd • ?left("我们是大学生",2) • 我们

  42. 字符串型函数 • ?string(1,"abc"),string(2,"abc"),string(3,"abc"),string(4,"abc") • a aa aaa aaaa • ?"a"+space(2)+"bc" • a bc • ?len(ltrim(" abc")),len(rtrim("abc ") ) • 3 3 • ?lcase("ABCDE123abc"),ucase("123abcDEF") • abcde123abc 123ABCDEF • ?val("a12"),val("12a"),val("12")+val("12"),"12"+"12" • 0 12 24 1212

  43. 日期/时间型函数

  44. 类型转换函数

  45. InputBox()函数 • InputBox()函数用从一个对话框中输入数据。它的返回值的类型由接受返回值变量的类型所决定 。 • 格式: InputBox(Prompt[,Title][,Default][,Xpos][,Ypos])

  46. MsgBox()函数 • MsgBox()函数用“消息对话框”来输出计算结果。 • 格式:MsgBox(Prompt[,Buttons][,Title]) MsgBox 函数的按钮名称及返回值

  47. MsgBox函数按钮与图标参数设置

  48. MsgBox()函数 • a=MsgBox("请进!",vbOK,"入口") • a=MsgBox("请出!",vbCancel,"出口")

  49. MsgBox()函数 • a=MsgBox("请出!",3+32,"出口") • a=MsgBox("请出!",Vbcancel+vbInformation,"出口")

  50. 运算符与表达式 • 运算符是对数据进行操作运算的符号。这些数据必须是同一类型的。 • 表达式是由常量、变量、函数和运算符组成的运算式。它是VBA的重要组成部分。表达式的类型一般由运算符决定。 • 100 • []+100 “女”

More Related