第1篇 基 础篇 2
第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篇 简单实例篇 56
第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篇 复杂实例篇 366
第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