第一篇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 5
1.4小结 6
1.5上机操作 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加载项 20
2.6.4 ActiveX设置 20
2.6.5宏设置 21
2.6.6消息栏 22
2.6.7外部内容 22
2.7小结 23
2.8习题 23
第3章VBA开发环境 25
3.1窗口 25
3.1.1工程资源管理器窗口 26
3.1.2代码窗口 27
3.1.3监视窗口 28
3.1.4属性窗口 28
3.1.5立即窗口 29
3.1.6本地窗口 30
3.1.7对象浏览器 30
3.2菜单 32
3.2.1“视图”菜单 32
3.2.2“插入”菜单 34
3.2.3“调试”菜单 35
3.2.4“运行”菜单 36
3.2.5“工具”菜单 37
3.3小结 39
3.4习题 39
第二篇 VBA基础语法篇 42
第4章VBA语法基础 42
4.1常量与变量 42
4.1.1常量 42
4.1.2变量 44
4.2数据类型 46
4.2.1字符串型 47
4.2.2字节型 48
4.2.3整数型 48
4.2.4长整数型 49
4.2.5布尔型 49
4.2.6小数型 50
4.2.7货币型 50
4.2.8单精度浮点型 51
4.2.9双精度浮点型 51
4.2.10日期型 51
4.2.11变体 53
4.2.12自定义数据类型 55
4.2.13枚举类型 55
4.3数组 56
4.3.1声明数组 56
4.3.2使用数组 57
4.3.3数组的基本操作 58
4.4运算符 60
4.4.1算术运算符 60
4.4.2关系运算符 61
4.4.3连接运算符 61
4.4.4逻辑运算符 62
4.4.5运算符优先级别 63
4.5小结 64
4.6习题 64
第5章VBA基础语句 65
5.1赋值语句 65
5.1.1 Let赋值语句 65
5.1.2 Set赋值语句 67
5.2注释语句 67
5.2.1 Rem注释语句 68
5.2.2单引号注释 68
5.3输入输出语句 69
5.3.1 InputBox函数——提示输入内容 69
5.3.2 MsgBox函数——显示信息 70
5.3.3 Debug.Print语句 72
5.4暂停结束跳转语句 73
5.4.1 Stop暂停语句 74
5.4.2 End结束语句 75
5.4.3 Exit结束语句 76
5.4.4 GoTo跳转语句 77
5.5语句输入技巧 78
5.5.1单语句多行输入 78
5.5.2多语句单行输入 78
5.6小结 79
5.7习题 79
第6章 程序结构控制语句 81
6.1程序结构流程图 81
6.1.1常见流程图图形 81
6.1.2基本结构流程图 82
6.2选择结构语句 82
6.2.1 If-Then单行语句 82
6.2.2 If-Then多行语句 83
6.2.3 If-Then-Else语句 84
6.2.4 If-Then-ElseIf语句 85
6.2.5 Select Case多分支语句 86
6.3循环结构语句 88
6.3.1先条件Do-Loop循环 88
6.3.2后条件Do-Loop循环 90
6.3.3无条件Do-Loop循环 92
6.3.4 For-Next循环 92
6.3.5 For Each-Next循环 94
6.4嵌套语句 95
6.4.1选择结构嵌套语句 95
6.4.2循环结构嵌套语句 97
6.5小结 98
6.6习题 98
第7章 过程 101
7.1过程的基础知识 101
7.1.1实参与形参 101
7.1.2值传递与地址传递 102
7.1.3可选参数 103
7.1.4不定数量参数 104
7.1.5过程的作用域 105
7.1.6过程参数表 105
7.1.7创建过程 106
7.2过程的调用 107
7.2.1模块内调用 107
7.2.2模块间调用 108
7.2.3过程嵌套与递归 109
7.3小结 110
7.4习题 110
第8章Sub与Function过程 112
8.1 Sub子过程 112
8.1.1事件子过程 112
8.1.2通用子过程 114
8.2 Function过程 116
8.2.1 Function过程定义格式 116
8.2.2工作表Function函数 116
8.2.3模块Function函数 118
8.3小结 119
8.4习题 119
第三篇Excel VBA对象篇 122
第9章Excel VBA对象模型和应用程序对象 122
9.1 Excel VBA对象模型简介 122
9.1.1认识Excel 2010 122
9.1.2深入了解Excel 2010 VBA对象模型 123
9.2 Application对象 124
9.2.1获取当前活动对象 125
9.2.2获取对象的关联信息 126
9.2.3获取对象类型 126
9.2.4获取或设置程序状态 127
9.2.5控制Excel 2010交互方式 131
9.2.6了解Application的子对象 132
9.2.7使用“打开”与“另存为”对话框 133
9.2.8 MacroOptions设置宏选项 135
9.2.9 OnKey与SendKeys方法 137
9.3 FileDialog与Dialogs对象 139
9.3.1 FileDialog文件对话框对象 139
9.3.2 Dialogs对话框集合对象 143
9.4小结 145
9.5习题 145
第10章 工作簿对象 147
10.1工作簿的属性 147
10.1.1设置工作簿的通用属性 147
10.1.2设置数字精度 148
10.1.3设置工作簿密码 149
10.1.4访问工作簿的内置属性 150
10.1.5返回工作簿用户状态信息 151
10.1.6控制工作簿中的图形显示 152
10.2工作簿的方法 153
10.2.1依次激活所有工作簿 153
10.2.2保存工作簿 154
10.2.3判断工作簿的状态信息 157
10.2.4创建名称 158
10.3工作簿的事件 159
10.3.1 Open事件——打开工作簿 159
10.3.2 Activate事件——激活工作簿 160
10.3.3 SheetActivate事件——激活工作表 161
10.3.4 NewSheet事件——添加新工作表 161
10.3.5 BeforeSave事件——保存工作簿之前 161
10.3.6 Deactivate事件——非活动状态工作簿 162
10.3.7 BeforePrint事件——打印前 162
10.3.8 BeforeClose事件——关闭工作簿前 163
10.4工作簿集合 163
10.4.1工作簿集合的属性 163
10.4.2工作簿集合的方法 164
10.5小结 165
10.6习题 165
第11章 工作表对象 167
11.1工作表对象的属性 167
11.1.1遍历工作簿中的工作表 167
11.1.2限制单元格的移动范围 168
11.1.3工作表的行和列操作 168
11.1.4隐藏或显示工作表 169
11.1.5设置工作表标签 170
11.1.6确定打印页数 171
11.2工作表对象的方法 172
11.2.1移动或复制工作表 172
11.2.2删除工作表 172
11.2.3保护工作表和解除工作表的保护 173
11.2.4判断一个工作表是否存在 175
11.3工作表对象的事件 176
11.3.1 Change事件——更改事件 177
11.3.2 SelectionChange事件——区域选择变化事件 178
11.3.3 BeforeRightClick事件——右击 178
11.3.4 Calculate事件——重新计算 179
11.4工作表集合 179
11.4.1工作表集合的属性 179
11.4.2工作表集合的方法 180
11.5小结 182
11.6习题 182
第12章 单元格对象 184
12.1单元格区域的引用 184
12.1.1通过Cells属性引用单个单元格 184
12.1.2通过Range属性引用单元格区域 185
12.1.3通过Offset属性引用相对其他单元格的单元格 186
12.1.4合并单元格区域 186
12.1.5引用多个子区域的集合 186
12.1.6扩展单元格区域 187
12.1.7引用单元格交叉区域 187
12.1.8引用当前区域 188
12.1.9引用已使用区域 188
12.1.10返回与指定类型和值匹配的所有单元格 189
12.2单元格区域的选取 190
12.2.1单元格区域的激活与选择 190
12.2.2计算选中单元格的数目 190
12.2.3确定选中单元格区域的类型 191
12.2.4有效地遍历选中单元格区域 192
12.3单元格区域的编辑 194
12.3.1合并与拆分单元格 194
12.3.2自动设置打印区域 194
12.3.3给单元格设置公式 195
12.3.4复制与移动单元格区域 196
12.3.5删除单元格 197
12.4单元格区域格式的设置 198
12.4.1设置自动套用样式 198
12.4.2设置条件格式 199
12.4.3设置边框线 201
12.4.4设置文本对齐格式 202
12.4.5设置自动换行格式 202
12.5单元格区域公式的处理 202
12.5.1判断单元格是否包含公式 203
12.5.2自动填充公式 203
12.5.3锁定和隐藏公式 204
12.5.4将公式转换为数值 205
12.6单元格区域的数据查询 205
12.6.1查找指定的值 205
12.6.2查找并定位单元格区域中的最大值 207
12.6.3查询特殊格式的单元格 207
12.6.4模糊查询 208
12.7单元格区域的数据排序 209
12.8小结 209
12.9习题 210
第13章 图表对象 211
13.1创建图表 211
13.1.1创建嵌入式图表 211
13.1.2创建图表工作表 212
13.1.3转换图表类型 213
13.1.4删除图表 215
13.2控制图表对象 215
13.2.1判断当前选择的图表的类型 215
13.2.2打印图表 216
13.2.3将图表保存成图片 216
13.2.4使用数据标签 217
13.3图表格式的设置 219
13.3.1设置图例信息 219
13.3.2设置图表坐标轴信息 221
13.3.3为图表添加阴影 222
13.3.4设置图表颜色 225
13.4图表事件 226
13.4.1图表工作表事件 226
13.4.2嵌入式图表事件 228
13.5小结 229
13.6习题 230
第四篇VBA高级应用篇 232
第14章 自定义Excel 2010的用户界面 232
14.1 Excel 2010界面介绍 232
14.1.1功能区用户界面 232
14.1.2“文件”选项卡 234
14.1.3向快速访问工具栏添加命令 234
14.1.4使用Ribbon设计用户界面的优点 235
14.2自定义菜单 235
14.2.1使用VBA代码访问Excel的菜单 236
14.2.2创建自定义菜单 237
14.2.3创建快捷菜单项 241
14.3自定义功能区 242
14.3.1使用记事本定制功能区选项卡 242
14.3.2使用Custom UI Editor for Microso Office 2010修改UI 244
14.3.3 RibbonX和VBA 246
14.4设置“文件”菜单 247
14.4.1禁用“文件”菜单中的命令 247
14.4.2向“文件”菜单中添加命令 248
14.5小结 248
14.6习题 249
第15章 工作表控件 250
15.1表单控件 250
15.1.1按钮控件 250
15.1.2组合框和列表框 254
15.1.3复选框和单选按钮 257
15.1.4数值调节钮和滚动条 259
15.2 ActiveX控件 260
15.2.1标签、按钮、切换按钮和文本框 260
15.2.2组合框和列表框 265
15.2.3复选框和单选按钮 269
15.2.4数值调节钮和滚动条 272
15.3小结 274
15.4习题 275
第16章 界面设计 277
16.1使用窗体控件入门 277
16.2使用窗体 278
16.2.1设置窗体属性 279
16.2.2使用窗体和控件的方法 283
16.2.3窗体的事件 284
16.3命令按钮 287
16.3.1命令按钮的属性 288
16.3.2命令按钮的方法和事件 289
16.4文本框 289
16.4.1文本框的属性 289
16.4.2文本框的方法和事件 291
16.5单选按钮和复选框 292
16.5.1单选按钮和复选框的属性 292
16.5.2单选按钮和复选框举例 292
16.6列表框与复合框 293
16.6.1列表框与复合框的属性 294
16.6.2列表框与复合框的方法和事件 294
16.6.3列表框与复合框举例 295
16.7其他控件 297
16.7.1多页控件 297
16.7.2切换按钮 297
16.7.3图像控件 298
16.8自定义工具箱 298
16.8.1添加或者删除控件 298
16.8.2添加控件组 298
16.8.3为工具箱添加新标签页 299
16.9小结 299
16.10习题 299
第17章XML与VBA 301
17.1 Excel中使用XML 301
17.1.1 XML简介 301
17.1.2 XML模式文件 302
17.1.3加载XML文件 303
17.1.4加载XML模式文件 308
17.1.5使用VBA操作XML文件 312
17.2 DOM对象编程 314
17.2.1创建和加载XML文档 315
17.2.2遍历XML文档 316
17.2.3添加XML文档元素 317
17.2.4删除XML文档元素 319
17.2.5修改XML文档元素 320
17.3小结 321
17.4习题 321
第18章 加载宏 323
18.1标准加载宏 323
18.1.1创建标准加载宏 323
18.1.2安装标准加载宏 324
18.2标准加载宏示例 325
18.2.1加载宏的功能 325
18.2.2自定义工具栏界面 326
18.2.3编写回调函数 327
18.2.4安装加载宏 328
18.3小结 328
18.4习题 328
第19章 数据库编程 330
19.1使用MS Query管理外部数据 330
19.1.1了解MS Query 330
19.1.2实例介绍 331
19.1.3连接数据源 331
19.1.4创建数据查询 333
19.1.5检测数据查询 335
19.2 ADO概述 336
19.2.1引用ADO对象库 336
19.2.2 ADO对象模型简介 336
19.2.3 SQL简介 337
19.3 Connection对象 338
19.3.1 Connection对象常用属性 338
19.3.2 Connection对象常用方法 340
19.4 Recordset对象 342
19.4.1 Cursor Type与LockType 343
19.4.2 Recordset对象的常用属性 343
19.4.3 Recordset对象的常用方法 344
19.5 Command对象 347
19.6小结 348
19.7习题 348
第五篇 综合实例与面试问答篇 352
第20章 成绩管理系统 352
20.1编程思路 352
20.1.1问题和需求分析 352
20.1.2功能分析 353
20.2表格设计 353
20.2.1学生信息表的设计 353
20.2.2学生分数表的设计 354
20.2.3综合统计表 355
20.3录入和更新功能设计 355
20.3.1窗体的设计 355
20.3.2录入代码设计 356
20.3.3更新功能 359
20.4简单搜索功能 362
20.4.1简单搜索窗体设计 362
20.4.2简单搜索功能代码设计 362
20.5高级查询功能 364
20.5.1窗体设计 365
20.5.2单选按钮代码的编写 365
20.5.3量化选型按钮 368
20.5.4编写搜索函数 370
20.5.5给“确定”按钮编写代码 373
20.5.6实现两种查询的切换 376
20.6生成分数单 377
20.7生成统计表 378
20.7.1变量的规划 379
20.7.2人数统计 379
20.7.3求班级和男女总分 380
20.7.4完成数据项的录入 383
20.7.5将统计功能加载到控件中 384
20.8构造主界面 387
20.9小结 388
第21章 日程安排表 389
21.1编程思路 389
21.1.1问题和需求分析 389
21.1.2功能分析 389
21.2制作录入界面 390
21.2.1设计录入界面 390
21.2.2构建数据库 391
21.2.3录入界面功能块代码的编写 394
21.2.4制作今日安排界面 404
21.2.5主菜单界面设计 416
21.3小结 417
第22章 面试题 418
面试题001如何将Excel设置为全屏显示(2008年搜狐(中国)公司面试题) 418
面试题002如何设置屏幕刷新(2008年谷歌(中国)公司面试题) 419
面试题003如何查看复制信息(2010年华为公司面试题) 419
面试题004如何获取当前工作簿的路径信息(2009年戴尔(中国)公司面试题) 420
面试题005如何设置临时文件的保存路径和保存时间间隔(2008年联想公司面试题) 421
面试题006如何打开Windows的计算器程序(2010年联想公司面试题) 422
面试题007如何快速跳转到指定的单元格(2010年人寿保险信息部面试题) 423
面试题008如何激活功能区选项卡(2010年海尔公司采购部面试题) 424
面试题009如何为过程启动定义快捷键(2010年华硕公司面试题) 425
面试题010如何实现在打开工作簿时工作簿变大动画效果(2010年西门子公司面试题) 426
面试题011如何实现工作簿窗口的拆分(2010年联想公司面试题) 427
面试题012如何设置按页滚动的页数(2009年腾讯公司面试题) 428
面试题013如何设置网格线的颜色(2010年淘宝网校园招聘会面试题) 429
面试题014如何实现程序的定时运行(2008年网易公司面试题) 430
面试题015如何实现退出时强制保存工作簿(2008年索尼(中国)公司面试题) 431
面试题016如何获取工作表的可视范围(2009年华为公司面试题) 432
面试题017如何同时选择多个工作表(2007年明基公司企划部面试题) 432
面试题018如何禁止对某个单元格的选择(2008年博客网校园招聘会面试题) 433
面试题019如何禁止打开其他工作表(2009年平安保险公司投资业务部面试题) 434
面试题020如何快速删除工作表中包含空白单元格的行(2009年新浪网校园招聘会面试题) 435
面试题021如何通过程序向单元格中添加公式(2010年金山公司面试题) 436
面试题022如何实现英文文本的朗读(2010年腾讯公司面试题) 437
面试题023如何在工作表中绘制图形(2010年雅虎(中国)公司面试题) 438
面试题024如何在工作表中复制图表(2010年惠普公司面试题) 439
面试题025如何向未打开的工作表中添加数据(2009年百度公司面试题) 440
面试题026如何利用VBA打开网页(2010年淘宝网面试题) 442
面试题027如何将数据写入文本文件(2009年盛大网络面试题) 443
面试题028如何在打开Excel工作簿时播放声音(2010年网易面试题) 444
面试题029如何限制文件的打开次数(2010年巨人公司面试题) 445
面试题030如何获取文件夹大小(2008年盛大网络面试题) 447