具体描述
编辑推荐
? 案例引导知识,操作经典实用,讲解从入门到精通
? 多个行业案例覆盖,以实用为目的,书本与工作一步到位
? 贴心小栏目设计,既可掌握相关技巧,又能了解操作原因
? 详细的公式解析,使您对用到的公式能真正透彻理解
? 视频讲解与书本完全对应,模拟操作让学习变得更简单、轻松。
内容简介
《Office办公应用非常之旅:Excel VBA典型实例》分为3篇,共12章。前3章是基础篇,介绍Excel VBA开发的基础知识,包括熟悉VBE开发环境、VBA程序设计基础和Excel对象模型。第4~9章是简单实例篇,结合各个实例,介绍如何通过VBA代码调用Excel强大的数据管理与分析功能,内容丰富,涉及数据有效性、排序、自动筛选、高级筛选、名称、工作表函数、工作表保护等内容。第10~12章是复杂实例篇,重点讲述了Excel 2010结合数据库的开发模式,帮助读者认识和了解DAO/ADO/ADOX对象,学会使用SQL查询语句。
本书从实际出发,每个实例都介绍了设计思路与知识点,避免读者走弯路。无论是初学者还是有一定基础的读者,通过学习本书,都可以编制出属于自己的应用程序。
本书适合有大量数据处理需求的办公管理人员阅读,也适合大中专院校学生以及相关兴趣爱好者学习阅读,是实现高效办公的得力助手。
作者简介
乔志会,硕士研究生,毕业于中北大学计算机应用技术专业,2002年至今就职于中北大学。长期从事计算机教学和计算机软件开发相关工作,参与开发了多项计算机仿真相关的项目,先后在国家级、省级学术期刊上发表3篇计算机方面学术论文。 目录
第1篇 基 础 篇
第1章 初识Excel 2010 VBA 2
1.1 VBA的功能 3
1.2 认识VBA编辑器(VBE) 4
1.2.1 VBE环境的设置 5
1.2.2 VBE编辑器工具栏 6
1.2.3 工程资源管理器 6
1.2.4 “属性”面板 7
1.2.5 代码窗口 8
1.2.6 对象浏览器 8
1.3 VBE调试工具 9
1.3.1 逐句调试 9
1.3.2 断点设置 9
1.3.3 设置下一条语句 10
1.3.4 运行到光标 10
1.3.5 立即窗口 10
1.3.6 悬浮窗口 10
1.3.7 监视窗口 11
1.4 从宏开始学习VBA 11
1.4.1 了解宏 12
1.4.2 录制宏实例 13
1.4.3 分析与编辑宏代码 13
1.4.4 运行宏 14
第2章 VBA程序设计基础 15
2.1 数据类型 16
2.1.1 数值型 17
2.1.2 字节型(Byte) 17
2.1.3 字符串型(String) 17
2.1.4 逻辑型(Boolean) 17
2.1.5 日期型(Date) 18
2.1.6 无符号型(Decimal) 18
2.1.7 变体型(Variant) 18
2.1.8 对象型(Object) 18
2.1.9 用户自定义型 18
2.2 常量 19
2.2.1 直接常量 19
2.2.2 符号常量 20
2.2.3 系统常量 20
2.3 变量 21
2.3.1 变量命名 21
2.3.2 变量声明 21
2.3.3 变量的作用范围 22
2.4 认识过程与函数 23
2.4.1 Sub过程 24
2.4.2 Function过程 25
2.5 表达式与运算符 25
2.5.1 算术表达式 25
2.5.2 比较运算符 26
2.5.3 逻辑运算符 26
2.5.4 连接运算符 27
2.5.5 特殊运算符 27
2.6 结构语句 28
2.6.1 赋值语句 28
2.6.2 输出语句 29
2.6.3 If…Then语句 29
2.6.4 If…Then…Else语句以及变种 30
2.6.5 Select Case多分支语句 31
2.6.6 Do…Loop语句 33
2.6.7 For…Next语句 35
2.6.8 For Each…Next语句 36
2.6.9 跳转语句 37
2.7 常见函数与语句 38
2.7.1 注释语句 38
2.7.2 InputBox函数 39
2.7.3 MsgBox函数 39
2.8 数组 40
2.8.1 了解数组定义及上下界 40
2.8.2 多维数组 41
2.8.3 动态数组 41
2.8.4 5个与数组相关的函数和语句 42
2.8.5 在VBA中使用数组 43
第3章 Excel 2010 VBA对象模型 45
3.1 面向对象编程 46
3.1.1 对象的属性 46
3.1.2 对象的方法 47
3.1.3 对象的事件 47
3.2 Application对象 48
3.2.1 Application对象的常用属性 48
3.2.2 Application对象的常用方法 49
3.3 Workbook对象 49
3.3.1 Workbook对象的常用属性 50
3.3.2 Workbook对象的常用方法 50
3.4 Worksheet对象 50
3.4.1 Worksheet对象的常用属性 50
3.4.2 Worksheet对象的常用方法 51
3.5 Range对象 52
3.5.1 Range对象的引用方式 52
3.5.2 Range对象的常用属性 52
3.5.3 Range对象的常用方法 53
第2篇 简单实例篇
第4章 客户管理系统 56
4.1 系统概述 57
4.1.1 设计思路 57
4.1.2 知识点一:显示“开发工具”选项卡 57
4.1.3 知识点二:开启有代码的工作簿 58
4.2 首页设计 59
4.2.1 首页界面设计 60
4.2.2 标签控件显示效果变化代码 63
4.2.3 标签按钮单击事件代码 65
4.3 “客户资料管理”窗体设计 65
4.3.1 窗体界面设计 66
4.3.2 窗体初始化代码设计 67
4.3.3 “新增”按钮代码设计 69
4.3.4 “查找”按钮代码设计 70
4.3.5 检查拼音函数代码设计 71
4.3.6 拼音头字母函数代码设计 72
4.3.7 “修改”按钮代码设计 74
4.3.8 “删除”按钮代码设计 74
4.3.9 “查看客户表”按钮代码设计 76
4.3.10 浏览按钮代码设计 76
4.3.11 浏览按钮状态过程代码设计 78
4.4 “客户资料查询导出”窗体设计 78
4.4.1 窗体界面设计 79
4.4.2 窗体初始化代码设计 80
4.4.3 myCountry与myList过程代码设计 82
4.4.4 按区域筛选客户代码设计 82
4.4.5 myListView过程代码设计 84
4.4.6 选项按钮、文本框和复合框代码设计 85
4.4.7 “开始查询”按钮单击事件代码设计 87
4.4.8 输出报表过程代码设计 88
4.5 系统测试 88
4.5.1 “客户资料管理”窗体测试 89
4.5.2 “客户资料查询导出”窗体测试 90
第5章 学生成绩管理系统 92
5.1 系统概述 93
5.1.1 设计思路 93
5.1.2 知识点一:数据有效性 94
5.1.3 知识点二:自动筛选 95
5.1.4 知识点三:冻结窗格 96
5.1.5 知识点四:End属性 97
5.1.6 知识点五:Sort方法 97
5.2 首页设计 98
5.3 基本资料建立模块设计 100
5.3.1 学生名单表设计 100
5.3.2 教师与科目设置表设计 103
5.3.3 年级班级设置表设计 104
5.4 成绩输入与分析模块设计 105
5.4.1 成绩输入模块设计 106
5.4.2 年级排名模块设计 110
5.4.3 成绩再处理模块设计 113
5.5 查询模块设计 114
5.5.1 班级学生查询设计 114
5.5.2 教师查询设计 115
5.5.3 班级成绩查询设计 116
5.6 窗体设计 117
5.6.1 “成绩查询”窗体设计 117
5.6.2 “选择再处理成绩表”窗体设计 119
5.6.3 “教师查询”窗体设计 120
5.6.4 “学生查询”窗体设计 122
5.6.5 “输入成绩班级的年级与班级名”窗体设计 125
5.7 系统测试 127
5.7.1 建立班级成绩 128
5.7.2 生成年级成绩排名 129
第6章 固定资产管理系统 131
6.1 系统概述 132
6.1.1 设计思路 132
6.1.2 知识点一:设置单元格条件格式 133
6.1.3 知识点二:SendKey方法 134
6.2 首页界面设计 134
6.2.1 首页组成元素 135
6.2.2 首页建立步骤 135
6.3 其他无代码表设计 136
6.3.1 单项固定资产折旧明细模板表设计 137
6.3.2 设置表设计 137
6.4 固定资产登记表设计 138
6.4.1 表界面设计 138
6.4.2 设置单元格条件格式 139
6.4.3 表初始化代码 139
6.4.4 工作表双击事件代码 140
6.4.5 固定资产保存 141
6.5 固定资产登记统计表设计 143
6.5.1 界面设计 143
6.5.2 代码设计 144
6.6 固定资产折旧与现值统计表设计 144
6.6.1 表界面设计 145
6.6.2 表代码设计 145
6.7 基本设置窗体设计 148
6.7.1 窗体界面设计 148
6.7.2 窗体初始化与“确定”、“关闭”按钮代码设计 150
6.7.3 初始化页过程代码解释 151
6.7.4 重置列表过程代码设计 152
6.7.5 多页控件单击事件代码设计 153
6.7.6 “使用部门”页控件单击事件代码设计 154
6.7.7 “资产类别”页事件代码设计 156
6.7.8 “资产来源”页事件代码设计 158
6.8 计提日期窗体设计 159
6.8.1 窗体界面设计 159
6.8.2 窗体代码设计 160
6.9 进度窗体设计 161
6.10 利用数据窗体设计 162
6.10.1 窗体界面设计 162
6.10.2 窗体初始化代码设计 163
6.10.3 窗体控件事件代码设计 164
6.11 输入辅助窗体设计 166
6.11.1 窗体界面设计 166
6.11.2 窗体初始化与卸载事件代码设计 166
6.11.3 窗体控件事件代码设计 169
6.12 公共代码模块设计 169
6.12.1 公共变量模块 169
6.12.2 跳转按钮宏过程代码设计 170
6.12.3 资产类别拼音函数代码设计 171
6.12.4 拼音头字母函数代码设计 172
6.12.5 获取资产编号函数代码设计 173
6.12.6 计提折旧过程代码设计 175
6.12.7 是否计提函数代码设计 177
6.13 系统测试 178
6.13.1 固定资产登记 178
6.13.2 查看固定资产信息 180
6.13.3 计提折旧 180
6.13.4 固定资产折旧与现值统计 181
第7章 进销存管理系统 182
7.1 系统概述 183
7.1.1 设计思路 183
7.1.2 知识点:自定义菜单 184
7.2 Access数据库设计 184
7.2.1 数据表设计 184
7.2.2 建立数据库代码 186
7.3 系统自定义菜单 188
7.3.1 子菜单设计 188
7.3.2 自定义菜单代码设计 189
7.4 系统管理模块设计 193
7.4.1 系统公共变量 193
7.4.2 用户登录模块设计 194
7.4.3 修改用户名模块设计 196
7.4.4 修改密码模块设计 197
7.4.5 用户权限管理模块设计 199
7.5 “供货商资料管理”窗体设计 201
7.5.1 窗体界面设计 201
7.5.2 窗体初始化与关闭事件代码设计 202
7.5.3 “保存”按钮单击事件代码设计 203
7.5.4 “新建”按钮单击事件代码设计 205
7.5.5 “修改”按钮单击事件代码设计 205
7.5.6 “删除”按钮单击事件代码设计 206
7.5.7 “查询”按钮单击事件代码设计 206
7.5.8 ListView控件项目单击事件代码设计 208
7.5.9 查询与显示供货商信息过程代码设计 208
7.5.10 myListView过程代码设计 209
7.6 “商品资料管理”窗体设计 210
7.6.1 窗体界面设计 210
7.6.2 窗体初始化与关闭事件代码设计 211
7.6.3 “保存”按钮单击事件代码设计 212
7.6.4 “新建”按钮单击事件代码设计 214
7.6.5 “修改”按钮单击事件代码设计 214
7.6.6 “删除”按钮单击事件代码设计 215
7.6.7 “查询”按钮单击事件代码设计 215
7.6.8 ListView控件项目单击事件代码设计 216
7.6.9 查询与显示商品信息过程代码设计 217
7.6.10 myListView过程代码设计 217
7.7 “进货资料管理”窗体设计 219
7.7.1 窗体界面设计 219
7.7.2 窗体初始化与关闭代码设计 220
7.7.3 “保存”按钮单击事件代码设计 221
7.7.4 “进货数量”文本框事件代码设计 223
7.7.5 “商品编码”复合框事件代码设计 225
7.7.6 “新建”按钮单击事件代码设计 225
7.7.7 “修改”按钮单击事件代码设计 226
7.7.8 “删除”按钮单击事件代码设计 227
7.7.9 “查询”按钮单击事件代码设计 227
7.7.10 ListView控件项目单击事件代码设计 228
7.7.11 查询与显示进货信息过程代码设计 228
7.7.12 myListView过程代码设计 229
7.8 “销售资料管理”窗体设计 230
7.8.1 窗体界面设计 230
7.8.2 窗体初始化与关闭事件代码设计 231
7.8.3 “保存”按钮单击事件代码设计 232
7.8.4 “商品编码”复合框事件代码设计 234
7.8.5 “销售数量”文本框事件代码设计 235
7.8.6 “新建”按钮单击事件代码设计 236
7.8.7 “修改”按钮单击事件代码设计 236
7.8.8 “删除”按钮单击事件代码设计 237
7.8.9 “查询”按钮单击事件代码设计 238
7.8.10 ListView控件项目单击事件代码设计 239
7.8.11 查询与显示销售信息过程代码设计 239
7.8.12 myListView过程代码设计 240
7.9 “销售统计分析”窗体设计 241
7.9.1 窗体初始化与关闭事件代码设计 242
7.9.2 查询商品名称过程代码设计 243
7.9.3 商品名称复合框过程代码设计 243
7.9.4 复合框事件代码设计 243
7.9.5 按钮单击事件代码设计 245
7.10 库存管理模块设计 247
7.10.1 窗体界面设计 247
7.10.2 窗体初始化过程代码设计 248
7.10.3 “关闭”按钮代码设计 251
7.11 “资料查询与导出”窗体设计 251
7.11.1 窗体界面设计 252
7.11.2 窗体初始化与关闭过程代码设计 252
7.11.3 “查询项目”复合框代码设计 254
7.11.4 “开始查询”按钮代码设计 255
7.11.5 “数据导出”按钮代码设计 257
7.11.6 “选择要查询的信息种类”复合框代码设计 258
7.11.7 “运算符”复合框事件代码设计 259
7.11.8 “重设条件”按钮代码设计 259
7.12 系统测试 260
7.12.1 进货测试 260
7.12.2 销售测试 261
7.12.3 查询与导出测试 262
第8章 员工管理系统 263
8.1 系统概论 264
8.1.1 设计思路 264
8.1.2 知识点一:名称 264
8.1.3 知识点二:使用OnTime方法 265
8.1.4 知识点三:Range对象的Sort方法 265
8.1.5 知识点四:CountIf函数 266
8.1.6 知识点五:DateDiff函数 266
8.2 工作簿对象与表设计 267
8.2.1 主页表 267
8.2.2 员工档案卡表界面设计 268
8.2.3 员工档案卡表代码设计 269
8.2.4 请假登记表设计 273
8.2.5 考勤表设计 273
8.2.6 库表设计 273
8.2.7 参数表设计 274
8.2.8 工作簿对象设计 274
8.3 设计员工档案卡模块代码 274
8.3.1 变量定义 275
8.3.2 记录新增操作 275
8.3.3 记录修改操作 276
8.3.4 记录删除操作 276
8.3.5 记录保存操作 278
8.3.6 记录复制粘贴操作 279
8.3.7 Sheet_Formula过程 280
8.3.8 记录浏览操作 281
8.3.9 记录的查询操作 283
8.3.10 锁定与解锁工作表过程 286
8.3.11 隐藏批注与显示图片过程 287
8.4 考勤签到模块代码设计 288
8.4.1 考勤签到窗体设计 288
8.4.2 考勤签到模块执行流程与初始化代码 289
8.4.3 设计计时器代码 290
8.4.4 设计检查考勤月份代码 291
8.4.5 设计检查考勤表员工资料代码 293
8.4.6 设计标记员工出勤代码 294
8.4.7 设计窗体其他功能代码 297
8.5 请假登记模块代码设计 298
8.5.1 “请假登记”窗体界面设计 299
8.5.2 窗体初始化 299
8.5.3 年月日复合框相关代码设计 300
8.5.4 确认请假登记代码设计 303
8.6 系统测试 306
8.6.1 员工资料登记 307
8.6.2 员工考勤登记 308
8.6.3 员工请假登记 308
第9章 商场销售数据管理系统 309
9.1 系统概论 310
9.2 数据表设计 311
9.2.1 基本信息资料表设计 311
9.2.2 商品销售数据资料表设计 313
9.3 公共模块代码设计 314
9.3.1 公共变量模块设计 314
9.3.2 启动窗体公共过程代码设计 315
9.3.3 总查询字符串设置过程 316
9.3.4 数据库建立与更新过程代码设计 318
9.3.5 压缩数据库代码设计 322
9.4 基本信息设置窗体设计 322
9.4.1 窗体界面设计 323
9.4.2 窗体初始化代码 325
9.4.3 “新建”按钮代码设计 327
9.4.4 “编辑”按钮代码设计 330
9.4.5 “删除”按钮代码设计 332
9.4.6 ListView控件代码设计 332
9.5 商品销售数据登记窗体设计 333
9.5.1 窗体界面设计 333
9.5.2 窗体初始化、激活与卸载代码设计 335
9.5.3 复合框与文本框改变事件代码设计 336
9.5.4 按钮单击事件代码设计 337
9.5.5 刷新复合框过程代码设计 340
9.6 查询销售数据设置窗体设计 342
9.7 查询显示窗体设计 351
9.7.1 窗体界面设计 351
9.7.2 窗体事件代码设计 352
9.7.3 ListView控件事件代码设计 354
9.7.4 “导出所有项”按钮代码设计 355
9.7.5 “重置”按钮代码设计 356
9.7.6 “仅显示勾选项”按钮代码设计 356
9.7.7 “编辑”按钮代码设计 359
9.7.8 “关闭”按钮代码设计 359
9.8 编辑查询条件窗体设计 360
9.8.1 窗体界面设计 360
9.8.2 窗体事件代码设计 360
9.8.3 文本框改变事件 361
9.8.4 “确定”按钮代码设计 362
9.8.5 “关闭”按钮代码设计 362
9.9 系统测试 362
9.9.1 销售数据输入 363
9.9.2 查询销售数据 363
9.9.3 编辑销售数据 364
第3篇 复杂实例篇
第10章 学生座位编排系统 366
10.1 系统概述 367
10.1.1 知识点一:合并单元格 367
10.1.2 知识点二:定义批注 368
10.1.3 知识点三:Split函数的使用 369
10.2 首页设计 369
10.2.1 首页界面设计 370
10.2.2 首页代码设计 373
10.2.3 “编排座位”宏代码设计 373
10.3 学生表设计 377
10.3.1 学生表界面设计 377
10.3.2 学生表代码设计 377
10.4 编排表设计 378
10.4.1 编排表界面设计 378
10.4.2 编排表代码设计 378
10.5 “辅助输入”窗体设计 380
10.5.1 窗体界面设计 380
10.5.2 窗体初始化代码设计 381
10.5.3 “确认”按钮单击事件代码设计 382
10.6 “讲台位置”窗体设计 383
10.6.1 窗体界面设计 383
10.6.2 窗体代码设计 384
10.7 “交换位置”窗体设计 384
10.7.1 窗体界面设计 384
10.7.2 窗体代码设计 385
10.8 “手动调整”窗体设计 385
10.8.1 窗体界面设计 386
10.8.2 窗体代码设计 386
10.9 “行列设置”窗体设计 388
10.9.1 窗体界面设计 388
10.9.2 窗体代码设计 389
10.10 系统测试 390
10.10.1 座位编排设置与自动排列座位 390
10.10.2 调整座位 391
第11章 合同管理系统 392
11.1 系统概论 393
11.1.1 知识点一:工作表的可见性 393
11.1.2 知识点二:隐藏或取消隐藏表 394
11.1.3 知识点三:设置或取消深度隐藏 394
11.1.4 知识点四:保护工作表与撤销保护 395
11.2 数据表设计 396
11.3 首页设计 397
11.3.1 首页界面设计 397
11.3.2 首页代码设计 399
11.4 模块代码设计 400
11.4.1 公共变量模块代码设计 400
11.4.2 创建数据库程序模块代码设计 400
11.5 “用户登录”窗体设计 402
11.5.1 窗体界面设计 402
11.5.2 窗体代码设计 403
11.6 “修改用户名”窗体设计 405
11.6.1 窗体界面设计 405
11.6.2 窗体代码设计 405
11.7 “修改密码”窗体设计 406
11.7.1 窗体界面设计 407
11.7.2 窗体代码设计 407
11.8 “合同基本信息管理”窗体设计 409
11.8.1 窗体界面设计 409
11.8.2 窗体初始化与关闭事件代码设计 411
11.8.3 复合框设置代码设计 413
11.8.4 查询、显示合同基本信息过程代码设计 413
11.8.5 显示合同收费情况过程代码设计 415
11.8.6 “添加类别”与“添加部门”按钮代码设计 416
11.8.7 “新合同”与“添加”按钮代码设计 417
11.8.8 “修改”按钮代码设计 420
11.8.9 “删除”按钮代码设计 420
11.8.10 “查询”按钮代码设计 421
11.8.11 浏览记录按钮组代码设计 422
11.9 “合同收费信息管理”窗体设计 423
11.9.1 窗体界面设计 423
11.9.2 窗体初始化与关闭事件代码设计 425
11.9.3 复合框设置代码设计 426
11.9.4 查询、显示合同收费信息代码设计 427
11.9.5 “添加类别”按钮代码设计 428
11.9.6 “新记录”与“添加”按钮代码设计 429
11.9.7 “修改”按钮代码设计 432
11.9.8 “删除”按钮代码设计 433
11.9.9 “查询”按钮代码设计 433
11.9.10 ListView控件项目单击事件代码设计 435
11.10 “合同信息查询与导出”窗体设计 435
11.10.1 窗体界面设计 435
11.10.2 窗体初始化与关闭事件代码 437
11.10.3 复合框设置代码设计 438
11.10.4 “重设条件”按钮代码设计 439
11.10.5 “开始查询”按钮代码设计 440
11.10.6 “数据导出”按钮代码设计 441
11.10.7 清除显示信息过程代码设计 442
11.11 系统测试 443
11.11.1 “用户登录”窗体测试 443
11.11.2 “修改用户名”窗体测试 443
11.11.3 “修改密码”窗体测试 444
11.11.4 “合同基本信息管理”窗体测试 444
11.11.5 “合同信息查询与导出”窗体测试 446
第12章 拆分与备份工作簿系统 447
12.1 系统概述 448
12.1.1 设计思路 448
12.1.2 知识点一:Excel 2010中装载加载宏 449
12.1.3 知识点二:使用ADOX库 450
12.2 数据库表设计 451
12.3 工作簿与公共模块代码设计 452
12.3.1 工作簿对象代码设计 452
12.3.2 公共变量与菜单按钮代码设计 453
12.3.3 刷新窗体语言显示过程代码设计 454
12.3.4 刷新工作簿列表过程代码设计 455
12.3.5 保存选择工作簿代码设计 456
12.3.6 保存已选中工作簿过程代码设计 457
12.3.7 合并工作簿过程代码设计 458
12.3.8 链接字符串与工作簿名获取过程代码设计 462
12.4 “拆分工作簿”窗体设计 462
12.4.1 窗体界面设计 463
12.4.2 变量定义与窗体激活事件代码设计 464
12.4.3 刷新List控件过程代码设计 464
12.4.4 “浏览拆分工作簿”文本框与“浏览”按钮代码设计 465
12.4.5 “添加”按钮单击事件代码设计 467
12.4.6 “组别”复合框改变事件代码设计 468
12.4.7 “添加”按钮单击事件 469
12.4.8 “删除”按钮单击事件代码设计 470
12.4.9 “开始拆分”按钮单击事件代码设计 471
12.4.10 文件后缀与保存文件名过程代码设计 474
12.5 “选择备份工作簿”窗体设计 474
12.5.1 窗体界面设计 474
12.5.2 窗体事件代码设计 476
12.5.3 工作簿列表控件代码设计 477
12.5.4 “勾选设置”与“语言设置”框架代码设计 478
12.5.5 “打开”与“下一步”按钮代码设计 479
12.5.6 设置控件状态过程代码设计 480
12.6 “选择备份工作表”窗体设计 481
12.6.1 窗体界面设计 481
12.6.2 窗体激活与卸载事件代码设计 482
12.6.3 复合框改变事件代码设计 483
12.6.4 工作表列表、选中设置与按钮代码设计 484
12.6.5 刷新标题过程代码设计 485
12.6.6 设置表名显示状态过程代码设计 486
12.6.7 添加删除选定项过程代码设计 487
12.7 “保存备份文件位置”窗体设计 488
12.7.1 窗体界面设计 488
12.7.2 窗体事件与ListView事件代码设计 489
12.7.3 按钮代码设计 490
12.7.4 刷新已选工作表列表过程代码设计 491
12.7.5 刷新已选择表过程代码设计 492
12.7.6 默认保存文件名过程代码设计 493
12.8 信息提示窗体设计 494
12.8.1 窗体界面设计 495
12.8.2 窗体代码设计 495
12.9 系统测试 496
12.9.1 拆分工作簿模块功能测试 496
12.9.2 备份工作簿模块功能测试 498
前言/序言
随着社会经济和信息技术的飞速发展,人们每天接触到的数据量与日俱增。无论是个人还是企业,管理好信息数据都是一项非常重要的工作。作为Miscrosoft Office套装软件之一,Excel主要用来制作各种数据表格,其数据排序、筛选等功能是其他软件无法比拟的。Excel拥有强大的数据处理功能,通过它可以非常迅速地管理多种数据。Excel对于初级用户来说,是一款非常容易上手的制表软件,很多用户都需要每天通过Excel制作各种各样的数据表格。同时,其便捷而强大的数据处理功能也吸引着高手们不断深入挖掘,用以完成复杂的数据处理、数据分析和预测工作。
使用Excel进行数据处理时,经常会遇到需要重复步骤来完成制表的情况,每次都重复相同的步骤会非常麻烦,而通过Excel的宏功能可以非常方便地自动完成机械重复式的工作。宏可以记录实际使用中的操作步骤,并且可以自动执行这些步骤。例如,在对某个单元格区域的格式进行多项设置时,可以将“多项设置”操作录制成宏,以后通过录制的宏就能快速完成格式设置。但是通过录制功能实现的宏有很多缺点,如使用了没有必要的代码、无法执行循环和分支操作、无法与用户交互等。此时,用户可以使用VBA编程语言来直接编写宏。VBA的功能非常强大,例如,需要从几万个数据中删除重复记录时,无论是通过排序、筛选等功能,还是通过录制宏都是无法实现的,而通过VBA编程制作的宏,只需要少量的代码即可实现上述功能。
学习VBA编程最有效的方法是:先系统学习相关的理论,再模仿高手们制作的实例,最后形成自己独特的编程能力。为了帮助用户快速学习VBA,笔者精心从生活和工作中抽取了若干典型的实例,用户可通过分析实例中的代码,培养编程能力。同时,这些实例应用非常广泛,用户将这些实例稍加修改后即可形成自己的作品。本书以Excel 2010为平台,通过众多实例展现Excel 2010强大的数据处理与分析功能,从未接触过VBA开发的读者可顺利步入VBA开发的殿堂,已了解VBA开发的读者可积累更多的实战经验。本书的内容并不仅仅局限于Excel 2010,部分实例中还将Excel 2010与数据库结合起来,极大地提高了数据处理与分析的速度。而Excel 2010的工作簿文件本身也可以看作一个数据库,在本书中也有相应实例展现如何操作Excel数据库文件。
本书的特点
(1)循序渐进,由浅入深。
本书采取由浅入深的方式展开。本书前面3章是基础章节,介绍Excel
VBA开发的基础知识,包括熟悉VBE开发环境、VBA程序设计基础和Excel对象模型。在实例的安排上,前面的章节讲述的基本上是较为简单的实例,复杂的实例都放置在后面的章节。
(2)案例实用,内容丰富。
本书中所讲述的实例都具有很强的应用价值,实例用途各不相同,其开发方式也不一样。部分实例之间的开发方式具有较强的可比性,用户可以根据需要及各开发方式的优缺点进行选择。在实例选材上,也并不单一地局限为商业应用方向的实例。
(3)知识点提示,加深理解。
在本书的实例章节,基本上都会有知识点提示。这些知识点都是对应章节中使用到的难点与重点知识。了解并熟练掌握这些知识不仅有助于理解实例,还有助于丰富读者的开发思路。将知识点安排在每个章节的前面,也便于读者及时查找疑点问题,加深理解。
(4)注释详细,图文并茂。
本书的程序代码使用统一的格式标识,代码块的每一句后面都会标识注释,对该语句的作用加以说明。对于比较复杂的过程或函数,为了能够让读者更容易理解其意图,在讲述中不仅通过文字说明其运行流程,还通过流程图展示其过程。其中的一些重点与难点都会于其中加以讲述。
(5)配有光盘,加速学习。
本书配套光盘中包含了书中相关操作内容以及各个实例的源文件,建议读者先观看随书赠送的光盘视频,再研读书中的实例代码,最后再根据光盘中的实例文件分析和制作相关实例。
本书的内容安排
第1章:本章将引导读者步入VBA开发殿堂,其内容包括熟悉VBE开发环境、调试工具和认识宏。
第2章:本章介绍VBA程序设计基础。内容包括数据类型、常量、变量、过程与函数、表达式与运算符、结构语句、常见函数与语句和数组。
第3章:本章对Excel对象模型进行了比较简单的介绍。由于Excel对象模型包含的对象繁多,本章只讲述4个主要对象的常用属性和方法,分别是应用程序对象Application、工作簿对象WorkBook、工作表对象Worksheet和单元格区域对象Range。
第4~9章:这一部分包含了6个较简单的实例,实例的复杂程度依次呈上升趋势。实例涉及客户管理系统、学生成绩管理系统、固定资产管理系统、进销存管理系统、员工管理系统和商场销售管理系统。涉及的知识点包括窗体的设计、工作表界面设计、数据有效性、自动筛选、单元格控制、自定义菜单、名称、工作表函数应用、加载宏等。
第10~12章:这一部分包含了3个较为复杂的实例,大部分都用到了数据库知识。这3个实例分别是学生座位编排系统、合同管理系统、拆分与备份工作簿系统。涉及的知识点包括工作表可见性、保护与撤销工作表保护、DAO/ADO数据库对象、SQL查询和ADOX对象。
本书适合的读者
VBA入门与有一定经验的读者
公司管理人员
实验室、研究所的数据分析处理人员
会计、审计、统计等工作人员
大中专院校学生
关于作者
乔志会,硕士研究生,毕业于中北大学计算机应用技术专业,2002年至今就职于中北大学。长期从事计算机教学和计算机软件开发相关工作,参与开发了多项计算机仿真相关的项目,先后在国家级、省级学术期刊上发表3篇计算机方面学术论文。
同时参与本书编写的还有宫磊、谷原野、黄其武、李延琨、林家昌、刘林建、孟富贵、孙雪明、王世平、文明、徐增年、银森骑、张家磊、周伟杰、朱玲、张昆,由于编写过程中相对匆忙,如果存在错误,请不吝指出。
编 者
2013年8月
《Office办公应用精粹:Excel VBA实用技巧与经典案例解析》 内容概览 本书是一本深入探讨Excel VBA(Visual Basic for Applications)在Office办公自动化领域应用的书籍。旨在帮助读者掌握Excel VBA编程的基本原理、常用语法,并通过大量典型、实用的实例,引导读者将Excel VBA技术融会贯通,应用于日常办公的方方面面,从而显著提升工作效率,优化业务流程。本书内容详实,结构清晰,理论与实践相结合,适合不同层次的Excel用户,尤其是希望通过自动化解决重复性、繁琐性工作的职场人士、数据分析师、财务人员、行政人员等。 第一部分:Excel VBA入门与基础构建 本部分将带领读者走进Excel VBA的世界,为后续的深入学习打下坚实的基础。 Excel VBA概述与应用场景: 首先,我们将介绍Excel VBA是什么,它与Excel的紧密联系,以及为何要在Excel中使用VBA。 深入分析Excel VBA能够解决的典型办公场景,例如:数据录入自动化、报表生成与美化、数据清洗与处理、复杂计算与分析、流程审批与通知、文件管理与导入导出等。通过生动的案例,让读者直观感受VBA带来的效率提升。 VBA开发环境与基础概念: 详细介绍如何打开和使用Excel的VBA编辑器(VBE),包括菜单栏、工具栏、工程窗口、属性窗口、代码窗口等重要组件的详解。 讲解VBA编程中的核心概念,如:宏(Macro)、模块(Module)、过程(Procedure)、函数(Function)、对象(Object)、属性(Property)和方法(Method)等。 学习如何录制宏、运行宏以及如何理解和修改录制的宏代码。 VBA基本语法与数据类型: 讲解VBA中常用的变量声明与赋值(Dim语句)、基本数据类型(如Integer, Long, String, Double, Boolean, Date, Object等)及其应用。 介绍VBA中的运算符(算术运算符、比较运算符、逻辑运算符)和表达式。 学习如何使用VBA的控制结构,包括条件语句(If...Then...Else, Select Case)和循环语句(For...Next, Do While...Loop, Do Until...Loop, For Each...Next)。 Excel对象模型基础: 理解Excel的层级对象模型,包括Application、Workbook、Worksheet、Range、Cell等关键对象。 学习如何通过VBA代码引用和操作这些对象,例如:选择单元格、读取单元格值、写入单元格值、设置单元格格式、添加删除工作表等。 重点讲解Range对象的强大之处,包括单元格区域的引用(如A1, A1:B5, Union, Intersect)、属性(Value, Text, Font, Interior, Border)和方法(Clear, Copy, Paste, Select, Find, Replace)。 第二部分:Excel VBA核心编程技巧 本部分将深入讲解Excel VBA的各项核心编程技巧,为读者构建更强大、更灵活的自动化解决方案。 变量、常量与用户定义类型: 深入探讨变量的作用域(Public, Private, Dim)和生命周期。 学习如何使用常量(Const)来提高代码的可读性和可维护性。 介绍用户定义类型(User-Defined Types, UDTs)的创建和使用,用于组织复杂的数据结构。 函数与子程序(过程)的设计与调用: 学习如何创建自定义函数(Function)来封装复杂的计算逻辑,并在工作表中使用。 学习如何创建子程序(Sub)来执行一系列操作。 掌握过程之间的传参(ByVal, ByRef)以及返回值的使用。 讲解如何通过模块化编程,将大型程序分解为多个可重用的过程,提高代码的可读性和管理性。 数组的运用: 介绍静态数组和动态数组的概念。 学习如何声明、初始化、读取和修改数组元素。 讲解多维数组的应用,例如处理二维表格数据。 掌握使用Lbound和Ubound函数获取数组边界,以及ReDim Preserve保留原有数据进行动态数组重塑。 错误处理与调试: 学习使用On Error语句进行错误处理,包括On Error Resume Next和On Error GoTo。 讲解如何通过Err对象获取错误信息,并进行相应的处理,避免程序中断。 介绍VBA编辑器提供的调试工具,如设置断点、单步执行(F8)、监视窗口、局部变量窗口等,帮助读者快速定位和解决代码中的问题。 用户交互与输入输出: 讲解如何使用InputBox函数获取用户输入。 学习使用MsgBox函数向用户显示消息、警告和提示,以及如何根据用户的选择执行不同操作。 介绍如何利用UserForm创建自定义对话框,实现更复杂的用户交互界面,包括各种控件(TextBox, ComboBox, ListBox, CommandButton, Label, CheckBox, OptionButton等)的使用和事件处理。 第三部分:Excel VBA典型实例解析与应用拓展 本部分是本书的核心内容,通过大量精心设计的、贴近实际工作的典型实例,全面展示Excel VBA的强大应用能力,并引导读者进行拓展思考。 数据处理与清洗自动化: 实例1:批量数据导入与格式统一: 演示如何编写VBA代码,从多个文本文件或Excel文件中读取数据,并自动进行格式统一(如日期格式、数字格式、文本格式)和清理(如去除空格、空行)。 实例2:重复数据查找与删除: 讲解如何快速、高效地找出并删除Excel表格中的重复记录,确保数据的唯一性。 实例3:数据有效性规则批量设置: 演示如何通过VBA批量为指定区域或工作表设置数据有效性规则,规范用户输入。 实例4:文本数据提取与合并: 讲解如何从包含特定模式的文本数据中提取关键信息,并将其合并到新的列或工作表中。 报表生成与美化自动化: 实例5:多条件汇总报表生成: 演示如何根据不同的筛选条件,自动生成汇总报表,并可选择汇总方式(如SUM, AVERAGE, COUNT)。 实例6:动态图表生成与更新: 讲解如何根据数据变化,自动创建或更新Excel图表,使图表始终反映最新数据。 实例7:个性化报表格式美化: 演示如何通过VBA自动设置报表的字体、颜色、边框、对齐方式、条件格式等,使其更具专业性和可读性。 实例8:多工作表数据汇总到主表: 讲解如何将分散在多个工作表中的数据,自动汇总到一个指定的主工作表中,方便统计分析。 业务流程自动化: 实例9:邮件发送与附件管理: 演示如何使用VBA自动发送邮件,并可根据条件添加附件,适用于日常通知、数据分发等场景。 实例10:文件与文件夹批量操作: 讲解如何通过VBA实现文件的复制、移动、删除、重命名,以及文件夹的创建、删除等批量操作,极大地提高文件管理效率。 实例11:审批流程模拟与通知: 演示如何模拟简单的审批流程,根据审批结果自动更新状态并发送通知邮件。 实例12:批量生成个性化文档: 讲解如何利用VBA结合Word模板,根据Excel中的数据批量生成个性化的Word文档,如合同、证书、通知等。 高级应用与技巧拓展: 实例13:与外部应用程序交互(如Access, Word): 介绍如何通过VBA连接数据库、读写Access表,以及与Word文档进行交互。 实例14:自定义Excel函数(UDF)开发: 演示如何创建更复杂的自定义函数,解决Excel内置函数无法满足的需求。 实例15:使用API函数(简要介绍): 简要介绍如何通过Declare语句调用Windows API函数,实现更底层的系统操作(如获取系统时间、操作剪贴板等),拓展VBA的能力边界。 实例16:性能优化与代码封装: 讲解提高VBA代码运行效率的方法,如禁用屏幕更新、事件处理、使用数组进行批量操作等,并介绍如何将常用功能封装为库,便于复用。 本书特色 循序渐进,由浅入深: 从最基础的概念讲起,逐步深入到复杂的编程技巧和实例应用,确保读者能够逐步掌握。 大量典型实用案例: 提供的实例均来源于实际工作场景,具有高度的应用价值,读者可以直接套用或在此基础上进行修改和拓展。 代码注释详细,易于理解: 每个实例的代码都附带详细的注释,解释代码的逻辑和每一步的作用,方便读者学习和理解。 强调解决实际问题: 全书以解决实际办公问题为导向,让读者在学习VBA的同时,能够真正提升工作效率。 注重技巧与方法: 不仅提供具体的解决方案,更注重讲解实现这些方案背后的编程思路、技巧和方法,培养读者的独立解决问题的能力。 鼓励实践与创新: 引导读者在掌握基础知识和案例后,勇于尝试和创新,将VBA技术应用到更广泛的领域。 目标读者 Office办公用户: 任何希望通过自动化手段提升Excel操作效率的Office用户。 数据分析师: 需要处理大量数据、进行复杂统计和报表制作的数据分析人员。 财务人员: 负责数据录入、报表生成、数据核对等工作的财务部门员工。 行政人员: 需要处理大量文档、数据、流程审批等日常事务的行政管理人员。 程序员与IT从业者: 希望将Excel VBA作为一种快速开发工具,实现办公自动化解决方案的IT专业人士。 学生与教育工作者: 学习和教授Office高级应用,以及数据处理与分析方法。 通过本书的学习,您将能够摆脱繁琐重复的手工操作,让Excel成为您强大的工作助手,显著提升您的工作效率和职业竞争力。