第一篇 VBA基础知识篇 2
第1章 认识VBA 2
1.1 概述 2
1.1.1 VBA简介 2
1.1.2 VBA在Excel中的应用 2
1.1.3 VBA与VB的关系 3
1.2 简单VBA实例 3
1.3 VBA的学习方法 4
1.3.1 利用录制宏学习VBA对象 4
1.3.2 利用网络学习VBA 6
1.4 小结 6
第2章 宏及其应用 7
2.1 认识宏 7
2.1.1 宏的优点 7
2.1.2 宏的缺点 7
2.2 设置宏 8
2.2.1 宏的名称、快捷键及说明 8
2.2.2 设置宏的保存位置 8
2.3 创建宏 9
2.3.1 理清宏操作步骤 9
2.3.2 录制宏 10
2.4 编辑宏 11
2.4.1 分析宏代码 11
2.4.2 清除宏冗余代码 12
2.5 启动宏 13
2.5.1 “宏”对话框启动宏 13
2.5.2 快捷键启动宏 14
2.5.3 按钮与形状启动宏 14
2.5.4 自启动宏 15
2.5.5 定时启动宏 16
2.6 安全性设置 17
2.6.1 受信任的发布者 18
2.6.2 受信任位置 19
2.6.3 加载项 19
2.6.4 ActiveX设置 20
2.6.5 宏设置 21
2.6.6 消息栏 21
2.6.7 外部内容 22
2.7 小结 23
第3章 VBA开发环境 24
3.1 窗口 24
3.1.1 工程资源管理器窗口 25
3.1.2 代码窗口 26
3.1.3 监视窗口 27
3.1.4 属性窗口 27
3.1.5 立即窗口 28
3.1.6 本地窗口 29
3.1.7 对象浏览器 29
3.2 菜单 31
3.2.1 “视图”菜单 31
3.2.2 “插入”菜单 33
3.2.3 “调试”菜单 35
3.2.4 “运行”菜单 36
3.2.5 “工具”菜单 37
3.3 小结 38
第二篇 VBA基础语法篇 40
第4章 VBA语法基础 40
4.1 常量与变量 40
4.1.1 常量 40
4.1.2 变量 42
4.2 数据类型 44
4.2.1 字符串型 45
4.2.2 字节型 46
4.2.3 整数型 46
4.2.4 长整数型 47
4.2.5 布尔型 47
4.2.6 小数型 47
4.2.7 货币型 48
4.2.8 单精度浮点型 48
4.2.9 双精度浮点型 49
4.2.10 日期型 49
4.2.11 变体 50
4.2.12 自定义数据类型 52
4.2.13 枚举类型 53
4.3 数组 53
4.3.1 声明数组 53
4.3.2 使用数组 54
4.3.3 数组的基本操作 55
4.4 VBA运算符 57
4.4.1 算术运算符 57
4.4.2 关系运算符 58
4.4.3 连接运算符 58
4.4.4 逻辑运算符 59
4.4.5 运算符优先级别 60
4.5 小结 61
第5章 VBA语句 62
5.1 赋值语句 62
5.1.1 Let赋值语句 62
5.1.2 Set赋值语句 64
5.2 注释语句 64
5.2.1 Rem注释语句 65
5.2.2 单引号注释 65
5.3 输入输出语句 66
5.3.1 InputBox函数——提示输入内容 66
5.3.2 MsgBox函数——显示信息 67
5.3.3 Debug.Print语句 69
5.4 暂停结束跳转语句 70
5.4.1 Stop暂停语句 70
5.4.2 End结束语句 72
5.4.3 Exit结束语句 73
5.4.4 GoTo跳转语句 74
5.5 语句输入技巧 75
5.5.1 单语句多行输入 75
5.5.2 多语句单行输入 75
5.6 小结 76
第6章 程序结构控制语句 77
6.1 程序结构流程图 77
6.1.1 常见流程图图形 77
6.1.2 基本结构流程图 78
6.2 选择结构语句 78
6.2.1 If-Then单行语句 78
6.2.2 If-Then多行语句 79
6.2.3 If-Then-Else语句 80
6.2.4 If-Then-E1seIf语句 81
6.2.5 Select Case多分支语句 82
6.3 循环结构语句 84
6.3.1 先条件Do-Loop循环 84
6.3.2 后条件Do-Loop循环 85
6.3.3 无条件Do-Loop循环 87
6.3.4 For-Next循环 88
6.3.5 For Each-Next循环 89
6.4 嵌套语句 90
6.4.1 选择结构嵌套语句 91
6.4.2 循环结构嵌套语句 92
6.5 小结 93
第7章 过程 95
7.1 过程基础知识 95
7.1.1 实参与形参 95
7.1.2 值传递与地址传递 96
7.1.3 可选参数 96
7.1.4 不定数量参数 98
7.1.5 过程的作用域 99
7.1.6 过程参数表 99
7.1.7 创建过程 100
7.2 过程的调用 101
7.2.1 模块内调用 101
7.2.2 模块间调用 101
7.2.3 过程嵌套与递归 102
7.3 小结 104
第8章 Sub与Function过程 105
8.1 Sub子过程 105
8.1.1 事件子过程 105
8.1.2 通用子过程 107
8.2 Function过程 109
8.2.1 Function过程定义格式 109
8.2.2 工作表Function函数 109
8.2.3 模块Function函数 111
8.3 小结 112
第三篇 Excel VBA对象篇第9章 Excel VBA对象模型和应用程序对象 114
9.1 Excel VBA对象模型简介 114
9.1.1 认识Excel 2007 114
9.1.2 深入了解Excel 2007 VBA对象模型 115
9.2 Application对象 117
9.2.1 获取当前活动对象 117
9.2.2 获取对象的关联信息 118
9.2.3 获取对象类型 118
9.2.4 获取或设置程序状态 119
9.2.5 控制Excel 2007交互方式 123
9.2.6 了解Application的子对象 124
9.2.7 使用“打开”与“另存为”对话框 125
9.2.8 MacroOptions设置宏选项 127
9.2.9 OnKey与SendKeys方法 129
9.3 FileDialog与Dialogs对象 131
9.3.1 FileDialog文件对话框对象 132
9.3.2 Dialogs对话框集合对象 135
9.4 小结 137
第10章 工作簿对象 138
10.1 工作簿的属性 138
10.1.1 设置工作簿的通用属性 138
10.1.2 设置数字精度 139
10.1.3 设置工作簿密码 140
10.1.4 访问工作簿的内置属性 140
10.1.5 返回工作簿用户状态信息 142
10.1.6 控制工作簿中的图形显示 143
10.2 工作簿的方法 145
10.2.1 依次激活所有工作簿 145
10.2.2 保存工作簿 146
10.2.3 判断工作簿的状态信息 148
10.2.4 创建名称 149
10.3 工作簿的事件 150
10.3.1 Open事件——打开工作簿 151
10.3.2 Activate事件——激活工作簿 151
10.3.3 SheetActivate事件——激活工作表 152
10.3.4 NewSheet事件——添加新工作表 152
10.3.5 BeforeSave事件——保存工作簿之前 153
10.3.6 Deactivate事件——非活动状态工作簿 153
10.3.7 BeforePrint事件——打印前 154
10.3.8 BeforeClose事件——关闭工作簿前 154
10.4 工作簿集合 155
10.4.1 工作簿集合的属性 155
10.4.2 工作簿集合的方法 155
10.5 小结 157
第11章 工作表对象 158
11.1 工作表对象的属性 158
11.1.1 遍历工作簿中的工作表 158
11.1.2 限制单元格的移动范围 159
11.1.3 工作表的行和列操作 159
11.1.4 隐藏或显示工作表 160
11.1.5 设置工作表标签 161
11.1.6 确定打印页数 162
11.2 工作表对象的方法 162
11.2.1 移动或复制工作表 162
11.2.2 删除工作表 163
11.2.3 保护工作表和解除工作表的保护 164
11.2.4 判断一个工作表是否存在 166
11.3 工作表对象的事件 166
11.3.1 Change事件——更改事件 167
11.3.2 SelectionChange事件——区域选择变化事件 168
11.3.3 BeforeRightClick事件——右击 169
11.3.4 Calculate事件——重新计算 169
11.4 工作表集合 170
11.4.1 工作表集合的属性 170
11.4.2 工作表集合的方法 170
11.5 小结 173
第12章 单元格对象 174
12.1 单元格区域的引用 174
12.1.1 通过Cells属性引用单个单元格 174
12.1.2 通过Range属性引用单元格区域 175
12.1.3 通过Offset属性引用相对其他单元格的单元格 175
12.1.4 合并单元格区域 176
12.1.5 引用多个子区域的集合 176
12.1.6 扩展单元格区域 177
12.1.7 引用单元格交叉区域 177
12.1.8 引用当前区域 178
12.1.9 引用已使用区域 178
12.1.10 返回与指定类型和值匹配的所有单元格 178
12.2 单元格区域的选取 179
12.2.1 单元格区域的激活与选择 179
12.2.2 计算选中单元格的数目 180
12.2.3 确定选中单元格区域的类型 181
12.2.4 有效地遍历选中单元格区域 182
12.3 单元格区域的编辑 183
12.3.1 合并与拆分单元格 183
12.3.2 自动设置打印区域 184
12.3.3 给单元格设置公式 185
12.3.4 复制与移动单元格区域 186
12.3.5 删除单元格 187
12.4 单元格区域格式的设置 187
12.4.1 设置自动套用样式 188
12.4.2 设置条件格式 189
12.4.3 设置边框线 191
12.4.4 设置文本对齐格式 191
12.4.5 设置自动换行格式 192
12.5 单元格区域公式的处理 192
12.5.1 判断单元格是否包含公式 192
12.5.2 自动填充公式 193
12.5.3 锁定和隐藏公式 194
12.5.4 将公式转换为数值 195
12.6 单元格区域的数据查询 195
12.6.1 查找指定的值 195
12.6.2 查找并定位单元格区域中的最大值 196
12.6.3 查询特殊格式的单元格 197
12.6.4 模糊查询 197
12.7 单元格区域的数据排序 198
12.8 小结 199
第13章 图表对象 200
13.1 创建图表 200
13.1.1 创建图表工作表 200
13.1.2 创建嵌入式图表 201
13.1.3 转换图表类型 202
13.1.4 删除图表 203
13.2 控制图表对象 204
13.2.1 判断当前选择的图表的类型 204
13.2.2 打印图表 205
13.2.3 将图表保存成图片 205
13.2.4 使用数据标签 206
13.3 图表格式的设置 208
13.3.1 设置图例信息 208
13.3.2 设置图表坐标轴信息 209
13.3.3 为图表添加阴影 210
13.3.4 设置图表颜色 213
13.4 图表事件 214
13.4.1 图表工作表事件 215
13.4.2 嵌入式图表事件 216
13.5 小结 218
第四篇 VBA高级应用篇 220
第14章 自定义Excel 2007的用户界面 220
14.1 Excel 2007新界面介绍 220
14.1.1 功能区用户界面 220
14.1.2 Office按钮 221
14.1.3 向快速访问工具栏添加命令 222
14.1.4 Excel 2007新界面与Ribbon 222
14.2 自定义菜单 223
14.2.1 使用VBA代码访问Excel的菜单 223
14.2.2 创建自定义菜单 225
14.2.3 创建快捷菜单 228
14.3 自定义功能区 229
14.3.1 使用记事本定制功能区选项卡 229
14.3.2 使用Microsoft Office 2007 Custom UI Editor修改UI 231
14.3.3 RibbonX和VBA 233
14.4 设置Office按钮菜单 234
14.4.1 禁用“Office按钮”菜单 234
14.4.2 在“Office按钮”中新建菜单 234
14.5 小结 235
第15章 工作表控件 236
15.1 表单控件 236
15.1.1 按钮控件 236
15.1.2 组合框和列表框 240
15.1.3 复选框和单选钮 242
15.1.4 数值调节按钮和滚动条 244
15.2 ActiveX控件 246
15.2.1 标签、按钮、切换按钮和文本框 246
15.2.2 组合框和列表框 250
15.2.3 复选框和单选钮 254
15.2.4 数值调节按钮和滚动条 257
15.3 小结 259
第16章 界面设计 260
16.1 使用窗体控件入门 260
16.2 使用窗体 261
16.2.1 设置窗体属性 263
16.2.2 使用窗体和控件的方法 267
16.2.3 窗体的事件 267
16.3 命令按钮 270
16.3.1 命令按钮的属性 271
16.3.2 命令按钮的方法和事件 272
16.4 文本框 272
16.4.1 文本框的属性 272
16.4.2 文本框的方法和事件 274
16.5 单选钮和复选框 275
16.5.1 单选钮和复选框的属性 275
16.5.2 单选钮和复选框举例 275
16.6 列表框与组合框 276
16.6.1 列表框与组合框的属性 277
16.6.2 列表框与组合框的方法和事件 277
16.6.3 列表框与组合框举例 278
16.7 其他控件 279
16.7.1 多页控件 280
16.7.2 切换按钮 280
16.73 图像控件 281
16.8 自定义工具箱 281
16.8.1 添加或者删除控件 281
16.8.2 添加控件组 282
16.8.3 为工具箱添加新标签页 282
16.9 小结 283
第17章 XML与VBA 284
17.1 Excel中使用XML 284
17.1.1 XML简介 284
17.1.2 XML模式文件 285
17.1.3 加载XML文件 286
17.1.4 加载XML模式文件 291
17.1.5 使用VBA操作XML文件 295
17.2 DOM对象编程 297
17.2.1 创建和加载XML文档 298
17.2.2 遍历XML文档 299
17.23 添加XML文档元素 300
17.2.4 删除XML文档元素 302
17.2.5 修改XML文档元素 303
17.3 小结 304
第18章 加载宏 305
18.1 标准加载宏 305
18.1.1 创建标准加载宏 305
18.1.2 安装标准加载宏 306
18.2 标准加载宏示例 307
18.2.1 加载宏的功能 308
18.2.2 自定义工具栏界面 308
18.2.3 编写回调函数 309
18.2.4 安装加载宏 310
18.3 小结 311
第19章 数据库编程 312
19.1 使用MS Query管理外部数据 312
19.1.1 了解MS Query 312
19.1.2 实例介绍 313
19.1.3 连接数据源 313
19.1.4 创建数据查询 315
19.1.5 检测数据查询 317
19.2 ADO概述 318
19.2.1 引用ADO对象库 318
19.2.2 ADO对象模型简介 319
19.2.3 SQL简介 319
19.3 Connection对象 320
19.3.1 Connection对象常用属性 320
19.3.2 Connection对象常用方法 323
19.4 Recordset对象 325
19.4.1 CursorType与LockType 325
19.4.2 Recordset对象的常用属性 326
19.4.3 Recordset对象的常用方法 327
19.5 Command对象 329
19.6 小结 330
第五篇 综合实例篇 332
第20章 成绩管理系统 332
20.1 编程思路 332
20.1.1 问题和需求分析 332
20.1.2 功能分析 333
20.2 表格设计 333
20.2.1 学生信息表的设计 333
20.2.2 学生分数表的设计 334
20.2.3 综合统计表 335
20.3 录入和更新功能设计 335
20.3.1 窗体的设计 335
20.3.2 录入代码设计 336
20.3.3 更新功能 339
20.4 简单搜索功能 342
20.4.1 简单搜索窗体设计 342
20.4.2 简单搜索功能代码设计 343
20.5 高级查询功能 345
20.5.1 窗体设计 345
20.5.2 选项按钮代码的编写 345
20.5.3 量化选型按钮 348
20.5.4 编写搜索函数 349
20.5.5 给“确定”按钮编写代码 353
20.5.6 实现两种查询的切换 356
20.6 生成分数单 356
20.7 生成统计表 358
20.7.1 变量的规划 358
20.7.2 人数统计 359
20.7.3 求班级和男女总分 360
20.7.4 完成数据项的录入 362
20.7.5 将统计功能加载到控件中 363
20.8 构造主界面 366
20.9 小结 367
第21章 日程安排表 368
21.1 编程思路 368
21.1.1 问题和需求分析 368
21.1.2 功能分析 368
21.2 制作录入界面 369
21.2.1 设计录入界面 369
21.2.2 构建数据库 370
21.2.3 录入界面功能块代码的编写 373
21.2.4 制作今日安排界面 382
21.2.5 主菜单界面设计 393
21.3 小结 395
附录 VBA编程参考 396