Excel VBA
目 录
一、VBA语言基础 ...................................................................................................................1
第一节 标识符....................................................................................................................................1
第二节 运算符....................................................................................................................................1
第三节 数据类型................................................................................................................................1
第四节 变量与常量............................................................................................................................1
第五节 数组........................................................................................................................................2
第六节 注释和赋值语句....................................................................................................................2
第七节 书写规范................................................................................................................................2
第八节 判断语句................................................................................................................................2
第九节 循环语句................................................................................................................................3
第十节 其他类语句和错误语句处理................................................................................................4
第十一节 过程和函数........................................................................................................................4
一.Sub过程 ................................................................. 4
二.Function函数 ............................................................ 5
三.Property属性过程和Event事件过程 ......................................... 5
第十二节内部函数 .............................................................................................................................5
一.测试函数 ................................................................ 5
二.数学函数 ................................................................ 5
三.字符串函数 .............................................................. 5
四.转换函数 ................................................................ 6
五.时间函数 ................................................................ 6
第十三节 文件操作............................................................................................................................6
文件 ........................................................................ 6
删除 ........................................................................ 6
打开 ........................................................................ 6
读入 ........................................................................ 7
写入 ........................................................................ 7
关闭 ........................................................................ 7
其他文件函数 ................................................................ 7
二、VISUAL BASIC程序设计网络教学 .....................................................................................1
第一课 VBA是什么 .................................................................................................................1
1.1 VBA是什么....................................................................................................................................1
1.2 EXCEL环境中基于应用程序自动化的优点................................................................................1
1.3 录制简单的宏..............................................................................................................................1
1.4 执行宏..........................................................................................................................................2
1.5 查看录制的代码..........................................................................................................................2
1.6 编辑录制的代码..........................................................................................................................3
1.7 录制宏的局限性..........................................................................................................................3
1.8 小结..............................................................................................................................................3
第二课 处理录制的宏 ............................................................................................................3
2.1 为宏指定快捷键..........................................................................................................................3
2.2 决定宏保存的位置......................................................................................................................4
2.3 个人宏工作簿..............................................................................................................................4
2.3.1 保存宏到个人宏工作簿 .................................................. 4
2.3.2 使用并编辑个人宏工作簿中的宏 .......................................... 4
2.4 将宏指定给按钮..........................................................................................................................4
2.5 将宏指定给图片或其他对象......................................................................................................5
2.6 小结..............................................................................................................................................5
第三课 学习控件 ...................................................................................................................5
1.使用WITH语句。 ..........................................................................................
2.使用对象变量。 .........................................................................................
方法 3:减少对象的激活和选择 ....................................................................
方法 4:关闭屏幕更新 ....................................................................................
3.1 EXCEL开发过程简介....................................................................................................................5
3.2 认识不同的控件..........................................................................................................................5
3.3 向工作表添加控件......................................................................................................................6
3.4 设置控件的特性..........................................................................................................................6
3.5 给控件命名..................................................................................................................................6
3.6 使用用户窗体..............................................................................................................................6
3.7 疑难解答......................................................................................................................................7
第四课 理解变量和变量的作用 ..............................................................................................7
4.1 代码存在的位置:模块..............................................................................................................7
4.2 对模块的概览..............................................................................................................................7
4.2.1 创建过程 .............................................................. 8
4.2.2 运行宏 ................................................................ 9
4.3 保存对模块所做的改变..............................................................................................................9
4.4 变量..............................................................................................................................................9
4.4.1 变量的数据类型 ........................................................ 9
4.4.2 用Dim语句创建变量(声明变量) .......................................... 10
4.4.3 变量命名的惯例 ....................................................... 10
4.4.4 使用数组 ............................................................. 10
4.4.5 变量赋值 ............................................................. 11
第五课 利用VBA设置工作表使用权限 ...................................................................................11
第六课 提高EXCEL中VBA的效率............................................................................................12
方法 1:尽量使用VBA原有的属性、方法和WORKSHEET函数............................................................12
方法 2:尽量减少使用对象引用,尤其在循环中.........................................................................12
1.使用With语句。 .......................................................... 12
2.使用对象变量。 .......................................................... 12
3.在循环中要尽量减少对象的访问。 .......................................... 13
方法 3:减少对象的激活和选择 ....................................................................................................13
方法 4:关闭屏幕更新 ....................................................................................................................13
第七课 如何在EXCEL里使用定时器.......................................................................................13
三、学习微软 EXCEL 2002 VBA 编程和XML,ASP技术...........................................................15
第一章 电子表格自动化简介和了解宏命令...........................................................................15
1 了解宏 ............................................................................................................................................15
2 宏命令的普通应用 ........................................................................................................................15
3 写宏之前的计划 ............................................................................................................................16
4 录制宏 ............................................................................................................................................17
5 运行宏 ............................................................................................................................................18
6 修改宏代码 ....................................................................................................................................19
7 添加注释 ........................................................................................................................................21
8 分析宏代码 ....................................................................................................................................22
9 清除宏代码 ....................................................................................................................................23
10 测试修改好的宏 ..........................................................................................................................24
11 两个层面运行宏的方法 ..............................................................................................................24
12 完善你的宏代码 ..........................................................................................................................25
13 重新命名宏 ..................................................................................................................................27
14 运行宏的其它方法 ......................................................................................................................27
15 使用键盘快捷键运行宏 ..............................................................................................................27
16 通过菜单运行宏 ..........................................................................................................................28
17 通过工具栏按钮运行宏 ..............................................................................................................30
18 通过工作表里面的按钮运行宏 ..................................................................................................31
19 保存宏 ..........................................................................................................................................32
20 打印宏 ..........................................................................................................................................32
21 保存宏在个人宏工作簿 ..............................................................................................................32
22 打开含有宏的工作簿 ..................................................................................................................34
23VB编辑窗口 ...................................................................................................................................35
24 了解工程浏览窗口 ......................................................................................................................35
25 了解属性窗口 ..............................................................................................................................36
26 了解代码窗口 ..............................................................................................................................36
27 VB编辑器里的其它窗口..............................................................................................................38
28 接下来…… ..................................................................................................................................39
第二章 VBA 第一步..............................................................................................................39
1 了解指令,模块和过程 ................................................................................................................39
2 VBA工程命名..................................................................................................................................39
3 模块重命名 ....................................................................................................................................40
4 从其它工程调用过程 ....................................................................................................................41
5 了解对象,属性和方法 ................................................................................................................42
6 学习对象,属性和方法 ................................................................................................................43
7 句法和文法 ....................................................................................................................................45
8 打断很长的VBA语句 ......................................................................................................................47
9 了解VBA错误 ..................................................................................................................................47
10 查找帮助 ......................................................................................................................................49
11 语法和编程快捷助手 ..................................................................................................................50
12 属性/方法列表 ............................................................................................................................51
13 常数列表 ......................................................................................................................................51
14 参数信息 ......................................................................................................................................52
15 快速信息 ......................................................................................................................................52
16 自动完成关键字 ..........................................................................................................................52
17 缩进/凸出 ....................................................................................................................................53
18 设置注释块/解除注释块 ............................................................................................................53
19 使用对象浏览器 ..........................................................................................................................53
20 使用VBA对象库 ............................................................................................................................58
21 用对象浏览器来定位过程 ..........................................................................................................59
22 使用立即窗口 ..............................................................................................................................59
23 获取立即窗口里的信息 ..............................................................................................................61
24 学习对象 ......................................................................................................................................62
25 电子表格单元格操作 ..................................................................................................................62
26 使用RANGE属性..............................................................................................................................62
27 使用CELLS属性..............................................................................................................................62
28 使用OFFSET属性 ............................................................................................................................63
29 选择单元格的其它方法 ..............................................................................................................64
30 选择行和列 ..................................................................................................................................64
31 获取工作表信息 ..........................................................................................................................65
32 往工作表输入数据 ......................................................................................................................65
33 返回工作表中的信息 ..................................................................................................................65
34 单元格格式 ..................................................................................................................................66
35 移动,复制和删除单元格 ..........................................................................................................66
36 操作工作簿和工作表 ..................................................................................................................67
37 操作窗口(WINDOWS)...................................................................................................................67
38 管理EXCEL应用程序......................................................................................................................68
39 接下来…… ..................................................................................................................................68
第三章 了解变量,数据类型和常量 .....................................................................................69
1 保存VBA语句的结果 ......................................................................................................................69
2 变量是什么 ....................................................................................................................................69
3 数据类型 ........................................................................................................................................69
4 如何产生变量 ................................................................................................................................70
5 如何声明变量 ................................................................................................................................71
6 明确变量的数据类型 ....................................................................................................................72
7 变量赋值 ........................................................................................................................................73
8 强制声明变量 ................................................................................................................................75
9 了解变量范围 ................................................................................................................................76
10 过程级别(当地)变量 ..............................................................................................................76
11 模块级别变量 ..............................................................................................................................77
12 工程级别变量 ..............................................................................................................................77
13 变量的存活期 ..............................................................................................................................78
14 了解和使用静态变量 ..................................................................................................................78
15 声明和使用对象变量 ..................................................................................................................79
16 使用明确的对象变量 ..................................................................................................................80
17 查找变量定义 ..............................................................................................................................80
18 在VB过程里面使用常量 ..............................................................................................................80
19 内置常量 ......................................................................................................................................81
20 接下来…… ..................................................................................................................................82
第四章 VBA过程:子程序和函数 ..........................................................................................82
1.关于函数过程 ...............................................................................................................................82
2.创建函数过程 ...............................................................................................................................82
3.执行函数过程 ...............................................................................................................................84
4.从工作表里运行函数过程 ...........................................................................................................84
5.从另外一个VBA过程里运行函数过程 .........................................................................................85
6.传递参数 .......................................................................................................................................86
7.明确参数类型 ...............................................................................................................................87
8.按地址和按值传递参数 ...............................................................................................................88
9.使用可选的参数 ...........................................................................................................................88
10.定位内置函数 .............................................................................................................................89
11.使用MSGBOX函数...........................................................................................................................90
12.MSGBOX函数的运行值...................................................................................................................94
13.使用INPUTBOX函数........................................................................................................................95
14.数据类型转变 .............................................................................................................................96
15.使用INPUTBOX方法........................................................................................................................97
16.使用主过程和子过程 ...............................................................................................................100
17.接下来…… ...............................................................................................................................102
第五章 基于VBA做决定 ......................................................................................................102
1.关系和逻辑运算符 .....................................................................................................................102
2.IF…THEN语句...............................................................................................................................103
3.基于多于一个条件的决定 .........................................................................................................105
4.THE IF…THEN…ELSE语句 .............................................................................................................106
5.IF…THEN…ELSEIF语句 ................................................................................................................108
6.嵌套的IF…THEN语句...................................................................................................................110
7.SELECT CASE语句...........................................................................................................................110
8.和CASE子句一起使用IS...............................................................................................................112
9.确定CASE子句里数值的范围 ......................................................................................................113
10.在CASE子句里确定多个表达式.................................................................................................114
11.接下来… ...................................................................................................................................114
第六章 在VBA中重复操作...................................................................................................114
1.DO LOOPS: DO…WHILE和DO…UNTIL................................................................................................114
2.观察过程执行 .............................................................................................................................117
3.WHILE…WEND循环..........................................................................................................................118
4.FOR…NEXT 循环 ...........................................................................................................................119
5.FOR EACH…NEXT循环.....................................................................................................................120
7.提前跳出循环 .............................................................................................................................121
8.循环嵌套 .....................................................................................................................................122
9.接下来… .....................................................................................................................................122
第七章 利用VBA数组管理数据清单和表格 ..........................................................................122
1.了解数组 .....................................................................................................................................123
2.声明数组 .....................................................................................................................................124
3.数组的上界和下界 .....................................................................................................................124
4.在VBA过程里使用数组 ...............................................................................................................124
5.数组和循环语句 .........................................................................................................................125
6.使用二维数组 .............................................................................................................................127
7.静态和动态数组 .........................................................................................................................128
8.数组函数 .....................................................................................................................................129
9.ARRAY函数.....................................................................................................................................130
10.ISARRAY函数 ...............................................................................................................................130
11.ERASE函数...................................................................................................................................131
12.LBOUND函数和UBOUND函数 ..........................................................................................................131
13.数组中的错误 ...........................................................................................................................132
14.数组作为参数 ...........................................................................................................................134
15.接下来… ...................................................................................................................................134
第八章 利用VBA操纵文件和文件夹.....................................................................................134
1.获取当前文件夹的名称(CURDIR函数)...................................................................................135
2.更改文件或文件夹名称(NAME函数).......................................................................................135
3.检查文件或文件夹是否存在(DIR函数) ................................................................................136
4.获得文件修改的日期和时间(FILEDATETIME函数).................................................................137
5.获得文件大小(FILELEN函数) .................................................................................................138
6.返回和设置文件属性(GETATTR函数和SETATTR函数) .............................................................138
7.更改缺省文件夹或驱动器(CHDIR语句和CHDRIVE语句).........................................................139
8.创建和删除文件夹(MKDIR语句和RMDIR语句)........................................................................140
9.复制文件(FILECOPY语句)........................................................................................................140
10.删除文件(KILL语句) ............................................................................................................142
11.从文件读取和写入数据(INPUT/OUTPUT)...............................................................................142
12.文件访问类型 ...........................................................................................................................142
13.使用顺序文件 ...........................................................................................................................143
14.读取储存于顺序文件里的数据 ...............................................................................................143
15.逐行读取文件 ...........................................................................................................................143
16.从顺序文件中读取字符 ...........................................................................................................144
17.读取分隔文本文件 ...................................................................................................................145
18.往顺序文件里写数据 ...............................................................................................................146
19.使用WRITE # 和PRINT # 语句....................................................................................................147
20.操作随机文件 ...........................................................................................................................148
21.创建用户定义的数据类型 .......................................................................................................148
22.操作二进制文件 .......................................................................................................................152
23.操作文件和文件夹的时髦方法 ...............................................................................................153
24.使用WSH获取文件信息 .............................................................................................................155
25.FILESYSTEMOBJEC的方法和属性..................................................................................................156
26.对象FILE的属性 ........................................................................................................................160
27.文件夹对象属性 .......................................................................................................................161
28.驱动器对象属性 .......................................................................................................................161
29.使用WSH创建文本文件 .............................................................................................................162
30.使用WSH进行其它操作 .............................................................................................................164
31.运行其它应用程序 ...................................................................................................................164
32.创建快捷方式 ...........................................................................................................................165
33.接下来…… ...............................................................................................................................166
第九章 利用VBA控制其它应用程序.....................................................................................167
1.启动应用程序 .............................................................................................................................167
2.在应用程序之间切换 .................................................................................................................169
3.控制其它应用程序 .....................................................................................................................170
4.控制应用程序的其它方法 .........................................................................................................171
5.了解自动控制 .............................................................................................................................172
6.了解链接和嵌入 .........................................................................................................................172
7.使用VBA进行链接和嵌入 ...........................................................................................................173
8.COM和自动控制 ...........................................................................................................................174
9.了解绑定 .....................................................................................................................................174
10.后期绑定 ...................................................................................................................................174
11.早期绑定 ...................................................................................................................................174
12.建立到对象库的引用 ...............................................................................................................175
13.创建自动控制对象 ...................................................................................................................176
14.使用CREATEOBJECT函数 ...............................................................................................................176
15.使用自动控制创建一个新的WORD文档.....................................................................................177
16.使用GETOBJECT函数....................................................................................................................177
17.打开存在的WORD文档 ................................................................................................................178
18.使用关键字NEW..........................................................................................................................179
19.使用自动控制访问MICROSOFT OUTLOOK .......................................................................................180
20.接下来…… ...............................................................................................................................181
第十章 对话框和自定义窗体..............................................................................................181
1.文件打开和另存为对话框 .........................................................................................................183
2.GETOPENFILENAME和GETSAVEASFILENAME方法...................................................................................187
3.创建窗体 .....................................................................................................................................188
4.创建用户窗体的工具 .................................................................................................................190
5.标签 .............................................................................................................................................191
6.文字框 .........................................................................................................................................191
7.框架 .............................................................................................................................................191
8.选项按钮 .....................................................................................................................................191
9.复选框 .........................................................................................................................................192
10.切换按钮 ...................................................................................................................................192
11.列表框 .......................................................................................................................................192
12.复合框 .......................................................................................................................................192
13.滚动条 .......................................................................................................................................192
14.旋转按钮 ...................................................................................................................................192
15.图像 ...........................................................................................................................................192
16.多页控件 ...................................................................................................................................192
17.TABSTRIP控件 .............................................................................................................................193
18.REFEDIT控件 ...............................................................................................................................193
19.在窗体上放置控件 ...................................................................................................................193
20.应用程序示例 1:信息调查 ....................................................................................................193
21.在窗体上添加按钮、选项框和其它控件 ...............................................................................194
22.更改控件名称 ...........................................................................................................................197
23.设置其它控件属性 ...................................................................................................................197
24.准备工作表以储存窗体数据 ...................................................................................................198
25.显示自定义窗体 .......................................................................................................................199
26.设置TAB顺序..............................................................................................................................199
27.了解窗体和控件事件 ...............................................................................................................200
28.编写VBA过程对窗体和控件事件反应 .....................................................................................201
29.编写过程来初始化窗体 ...........................................................................................................201
30.编写过程填充列表框控件 .......................................................................................................203
31.编写过程控制选项按钮 ...........................................................................................................203
32.编写过程同步文字框和旋转按钮 ...........................................................................................204
33.编写过程关闭用户窗体 ...........................................................................................................204
34.转移窗体数据到工作表 ...........................................................................................................205
35.使用INFO SURVEY应用程序.........................................................................................................206
36.应用程序示例 2:学生和考试 ................................................................................................206
37.使用多页和TABSTRIP控件..........................................................................................................206
38.给窗体STUDENTS AND EXAMS自定义窗体编写VBA过程................................................................208
39.使用自定义窗体STUDENTS AND EXAMS .........................................................................................212
40.接下来…… ...............................................................................................................................214
第十一章 自定义集合和类模块 ..........................................................................................214
1.使用集合 .....................................................................................................................................214
2.声明自定义集合 .........................................................................................................................215
3.给自定义集合添加对象 .............................................................................................................215
4.从自定义集合移出对象 .............................................................................................................216
5.创建自定义对象 .........................................................................................................................217
6.创建类 .........................................................................................................................................218
7.变量声明 .....................................................................................................................................218
8.定义类的属性 .............................................................................................................................218
9.创建PROPERTY GET过程.................................................................................................................219
10.创建PROPERTY LET过程 ...............................................................................................................219
11.创建类方法 ...............................................................................................................................220
12.创建类的示例 ...........................................................................................................................220
13.类模块里的事件过程 ...............................................................................................................221
14.创建用户界面 ...........................................................................................................................221
15.观察VBA过程的执行 .................................................................................................................229
16.接下来…… ...............................................................................................................................231
第十二章 使用VBA创建自定义菜单和工具栏.......................................................................231
1.工具栏 .........................................................................................................................................232
2.创建自定义工具栏 .....................................................................................................................233
3.删除自定义工具栏 .....................................................................................................................235
4.使用COMMANDBAR的属性 ................................................................................................................235
5.使用COMMANDBAR控件 ....................................................................................................................235
6.理解和使用控件属性 .................................................................................................................237
7.控件方法 .....................................................................................................................................239
8.使用菜单 .....................................................................................................................................240
9.菜单编程 .....................................................................................................................................241
10.创建子菜单 ...............................................................................................................................243
11.修改内置快捷菜单 ...................................................................................................................244
12.创建快捷菜单 ...........................................................................................................................247
13.接下来…… ...............................................................................................................................249
第十三章 调试VBA过程和处理错误.....................................................................................249
1.测试VBA过程 ...............................................................................................................................249
2.终止过程 .....................................................................................................................................249
3.使用断点 .....................................................................................................................................250
4.在中断模式下使用立即窗口 .....................................................................................................253
5.使用STOP语句 ..............................................................................................................................254
6.添加监视表达式 .........................................................................................................................254
7.清除监视表达式 .........................................................................................................................256
8.使用快速监视 .............................................................................................................................256
9.使用本地窗口和调用堆栈对话框 .............................................................................................257
10.逐句运行VBA过程 .....................................................................................................................258
11.逐句运行过程 ...........................................................................................................................259
12.逐过程执行过程 .......................................................................................................................259
13.设置下一条语句 .......................................................................................................................260
14.显示下一条语句 .......................................................................................................................260
15.终止和重新设置VBA过程 .........................................................................................................260
16.了解和使用条件编译 ...............................................................................................................260
17.操纵书签 ...................................................................................................................................262
18.捕捉错误 ...................................................................................................................................262
17.接下来…… ...............................................................................................................................266
第十四章 微软EXCEL 2002 中的事件编程...........................................................................266
1.事件过程介绍 .............................................................................................................................266
2.激活和失活事件 .........................................................................................................................267
3.事件次序 .....................................................................................................................................268
4.工作表事件 .................................................................................................................................268
5.工作簿事件 .................................................................................................................................272
6.图表事件 .....................................................................................................................................282
7.内嵌图表事件 .............................................................................................................................284
8.可为应用软件对象识别的事件 .................................................................................................285
9.查询表时间 .................................................................................................................................288
10.接下来…… ...............................................................................................................................289
第十五章 在EXCEL里使用ACCESS ........................................................................................289
1.对象库 .........................................................................................................................................289
2.建立对对象库的引用 .................................................................................................................292
3.链接到ACCESS ...............................................................................................................................293
4.使用AUTOMATION链接到ACCESS数据库...........................................................................................293
5.使用DAO链接到ACCESS数据库 .....................................................................................................295
6.使用ADO链接到ACCESS数据库 .....................................................................................................295
7.从EXCEL执行ACCESS任务...............................................................................................................296
8.创建新ACCESS数据库 ...................................................................................................................296
9.打开ACCESS窗体 ...........................................................................................................................298
10.打开ACCESS报表 .........................................................................................................................300
11.运行ACCESS查询 .........................................................................................................................301
12.运行选择查询 ...........................................................................................................................302
13.运行参数查询 ...........................................................................................................................303
14.调用ACCESS函数 .........................................................................................................................304
15.获取ACCESS数据到EXCEL工作表.................................................................................................304
16.使用GETROWS方法获取数据 .......................................................................................................304
17.使用COPYFROMRECORDSET方法获取数据.......................................................................................305
18.使用TRANSFERSPREADSHEET方法获取数据 ....................................................................................306
19.使用OPENDATABASE方法 ...............................................................................................................307
20.从ACCESS数据创建文本文件 .....................................................................................................309
21.从ACCESS数据创建查询表 .........................................................................................................310