第1篇 出海导航 1
第1章 VBA概述 1
1.1 VBA的诞生 2
1.2 VBA的优势 2
1.2.1 基于Basic语言 2
1.2.2 轻松完成重复的任务 2
1.2.3 让Excel作为数据展示平台 3
第2章 宏 4
2.1 录制宏 5
2.2 使用宏 8
2.3 编辑宏 9
2.4 宏和VBA 11
2.5 应用实例 12
2.5.1 录制一个美化表格的宏 12
2.5.2 使用和编辑已经录制好的宏 14
2.6 总结 14
第3章 VBA程序的编写和运行 15
3.1 VBE编程环境 16
3.2 程序的运行与调试初步 25
3.2.1 编写和运行程序 25
3.2.2 程序调试 27
3.3 应用实例 33
3.3.1 使用调试工具完成Excel表格数据格式的更改 33
3.4 总结 35
第2篇 扬帆起航 36
第4章 VBA基础必备 36
4.1 程序 37
4.2 Basic语言 37
4.3 注释 38
4.4 常量与变量 39
4.4.1 数据类型 39
4.4.2 声明变量 41
4.4.3 静态变量 42
4.4.4 变量的作用域 44
4.4.5 字符串变量 45
4.4.6 日期变量 46
4.4.7 对象变量 48
4.4.8 常量 48
4.5 数组 50
4.5.1 声明数组 50
4.5.2 多维数组 52
4.5.3 数组引用 53
4.6 运算符与表达式 54
4.6.1 VBA的运算符 54
4.6.2 运算符优先级 55
4.6.3 表达式 56
4.7 控制执行 56
4.7.1 If…Then语句 57
4.7.2 Select…Case语句 58
4.7.3 GoTo语句 59
4.8 循环 61
4.8.1 For…Next循环 61
4.8.2 For Each…Next循环 62
4.8.3 While…Wend语句 64
4.8.4 Do…Loop循环 65
4.8.5 With语句 66
4.9 集合与字典 68
4.9.1 Collection对象 68
4.9.2 Dictionary对象 69
4.10 应用实例 71
4.10.1 用VBA计算工作表中奇数行的和 71
4.10.2 用VBA删除重复值 72
4.11 总结 73
第5章 Sub过程 74
5.1 关于Sub的过程 75
5.1.1 声明Sub过程 75
5.1.2 过程变量的作用域 76
5.2 调用Sub过程 77
5.3 向Sub过程传递参数 78
5.3.1 复制传值 79
5.3.2 引用传值 80
5.4 应用实例 80
5.4.1 用第三列显示前两列数据之和 80
5.4.2 用第一列显示后两列的积 81
5.5 总结 82
第6章 Function过程 83
6.1 与Sub过程对比 84
6.2 Function过程 85
6.2.1 声明Function过程 85
6.2.2 返回结果 88
6.3 调用Function过程 88
6.3.1 在程序中调用Function过程 88
6.3.2 在工作表中调用Function过程 90
6.4 向Function过程传递参数 91
6.4.1 参数 91
6.4.2 传递参数 93
6.5 过程的调试 95
6.6 使用结构化思维 96
6.6.1 重复的代码 96
6.6.2 与重复代码的斗争 98
6.7 调用Windows API 100
6.8 应用实例 102
6.8.1 调用VBA中的Function过程获取自然数的平方和 102
6.8.2 Celsius函数根据华氏温度来计算摄氏温度 103
6.9 总结 104
第3篇 乘风破浪 105
第7章 操作Excel 105
7.1 Excel的对象模型 106
7.2 APPlication对象 106
7.2.1 常用属性 106
7.2.2 常用方法 110
7.3 Workbook对象 113
7.3.1 常用属性 113
7.3.2 常用方法 120
7.4 Worksheet对象 126
7.4.1 常用属性 126
7.4.2 常用方法 129
7.5 Range对象 134
7.5.1 常用属性 134
7.5.2 常用方法 137
7.6 Chart对象 141
7.6.1 常用属性 141
7.6.2 常用方法 144
7.7 应用实例 146
7.7.1 创建工作簿 146
7.7.2 文件对话框操作 148
7.8 总结 149
第8章 用户窗体 150
8.1 用户窗体的创建和移除 151
8.1.1 用户窗体的创建 151
8.1.2 用户窗体的移除 152
8.2 VBE的工具箱 153
8.2.1 初识工具箱 153
8.2.2 向工具箱中加入控件 155
8.3 绘制用户窗体 156
8.3.1 简单的设计 156
8.3.2 设置控件属性 159
8.3.3 界面设计 161
8.3.4 最少惊讶原则 163
8.4 处理窗体的响应 164
8.4.1 让用户窗体“动起来” 164
8.4.2 与事件的第一次亲密接触 164
8.5 常用窗体控件 168
8.6 应用实例 175
8.6.1 应用实例1:设计员工信息输入界面 175
8.6.2 应用实例2:设计密码验证窗口 179
8.7 总结 181
第9章 事件 182
9.1 理解事件 183
9.1.1 用“事件”的方式进行思考 183
9.1.2 事件的原理 183
9.1.3 VB与事件 184
9.2 编写事件代码 185
9.2.1 让代码与事件互动 185
9.2.2 创建自己的事件 188
9.2.3 禁用事件 190
9.3 用户窗体的事件 192
9.4 Excel对象的常用事件 202
9.4.1 应用程序事件 202
9.4.2 工作簿级别事件 204
9.4.3 工作表级别事件 210
9.4.4 图表事件 215
9.4.5 无对象关联事件 216
9.5 应用实例 219
9.5.1 制作个性化启动界面 219
9.6 总结 221
第10章 深入模块与类模块 222
10.1 模块化思考 223
10.1.1 模块概念 223
10.1.2 使用模块 223
10.2 面向对象与类 226
10.2.1 面向过程 226
10.2.2 面向对象 226
10.2.3 类(Class) 227
10.2.4 对象(Object) 227
10.2.5 对象树 227
10.2.6 VBA与面向对象 227
10.3 类模块 227
10.3.1 创建类模块 228
10.3.2 类的属性 228
10.3.3 类的方法 230
10.3.4 使用类模块 230
10.3.5 类模块事件 231
10.4 应用实例 232
10.4.1 合理使用模块 232
10.4.2 导入和导出CSV文件类 237
10.4.3 向CSVFile类中加入事件 243
10.5 总结 247
第11章 VBA与数据库 248
11.1 数据库技术 249
11.1.1 数据库概述 249
11.1.2 常用数据库 249
11.1.3 SQL语句 250
11.1.4 数据库编程的基本模式 253
11.2 用DAO操作数据库 254
11.2.1 连接数据库 254
11.2.2 操作数据库 256
11.3 用ADO操作数据库 261
11.3.1 ADO概述 261
11.3.2 ADO的对象模型 261
11.3.3 连接数据库 265
11.3.4 操作数据库 270
11.3.5 事务 276
11.4 用ADOX操作数据库 277
11.4.1 ADOX基础概述 277
11.4.2 ADOX的对象与集合 279
11.4.3 ADOX操作数据库 280
11.5 应用实例 284
11.5.1 数据库中表的添加字段 284
11.5.2 读取数据库信息 286
11.5.3 修改数据库中表的字段类型 287
11.5.4 修改数据库中的记录信息 288
11.5.5 删除数据库中表的所有记录信息 289
11.5.6 向数据库中添加信息 289
11.6 总结 290
第12章 文件操作 291
12.1 处理文件的基本思路 292
12.2 使用VBA的文件语句与过程 293
12.2.1 利用VBA语句来处理文件 293
12.2.2 利用VBA语句与过程来处理目录 295
12.2.3 利用VBA命令处理文本文件 297
12.2.4 用VBA命令处理二进制文件 303
12.3 使用FileSearch对象 304
12.3.1 使用FileSearch对象的属性与方法 304
12.4 使用FileSystemObject对象 306
12.4.1 FileSystemObject的对象模型 306
12.4.2 FileSystemObject对象的方法 308
12.4.3 处理驱动器 310
12.4.4 处理文件夹 311
12.4.5 处理文件 313
12.5 应用实例 317
12.5.1 判断文件是否存在 317
12.5.2 将文本文件中的数据读入到Excel中然后输出到另外一个文件 319
12.6 总结 320
第4篇 成功彼岸 321
第13章 高效VBA 321
13.1 优化前提 322
13.2 换一台更快的机器 322
13.3 一些使用VBA进行编程的技巧 322
13.3.1 在事件处理代码中关闭事件功能 322
13.3.2 关闭屏幕更新 323
13.3.3 使用With来引用对象 323
13.3.4 声明对象变量 324
13.3.5 显式声明变量 324
13.4 使用Excel提供的功能 324
13.4.1 使用工作表函数 324
13.4.2 减少对象的激活和选择 325
13.4.3 充分使用数组 326
13.5 优化与数据库的操作 326
13.5.1 使用数据库就是一种优化 326
13.5.2 只与数据库做必要的交互 327
13.5.3 针对数据库和查询语句进行优化 328
13.6 总结 328
第14章 固定资产管理系统 329
14.1 固定资产管理概述 330
14.2 任务1:固定资产入库登记 332
14.3 任务2:固定资产使用变更 340
14.4 任务3:用户管理 350
第15章 综合案例 354
15.1 人事管理系统 355
15.1.1 人事系统要做些什么 355
15.1.2 任务1:把员工记录管理起来 358
15.1.3 任务2:管理员工的考勤 382
15.1.4 任务3:应该有个登录界面 408
15.2 总结 413
附录A VBA中常用数据类型 414
附录B VBA程序设计中的常用语法和说明 415
附录C 运算符 429
附录D 文档约定 430
附录E Visual Basic编辑器快捷键 431