Excel VBA程序开发自学宝典(第4版)
作 者:罗刚君 著
定 价:119
出 版 社:电子工业出版社
出版日期:2021年07月01日
页 数:524
装 帧:平装
ISBN:9787121414350
本书是《Excel VBA 程序开发自学宝典(第3 版)》的升级版,在升级过程中作者做了大量的修改,包括调整章节顺序、舍弃部分实用性不好的内容、删除一些已经淘汰的技术、增加全新案例和章节等,特别是讲解了Excel VBA 与Word、PPT 的协同办公知识,有必要认真学习。
《Excel VBA 程序开发自学宝典(第 4 版)》是 VBA 入门与提高的经典教材。全书包含基础知识部分和高级应用部分。其中,基础知识部分包含 VBA 的基础理论、常用语句解析、综合应用、编程规则与代码优化等,提供了详尽的理论阐述和案例演示。高级应用部分包含数组、正则表达式、字典、设计窗体、VBA 与注册表、处理文件及文件夹、开发自定义函数、ribbon 功能区设计、与Word/PPT 协同办公,以及开发通用插件等专业知识。本书基于Excel 2019 撰写,不过代码可在Excel 2010、Excel 2013 和Excel 2016 中通用。如果你的Excel 版本不是2019 也可以不用升级,可以直接阅读本教材,按步骤操作即可。本书是《Excel VBA 程序开发自学宝典(第3 版)》的升级版,在升级过程中做了大量的修改,包括调整章节顺序、舍弃部分实用性不好的内容、删除一些已经淘null
"罗刚君,网名andysky,从事Excel研究及VBA二次开发10多年,擅长Excel函数、图表、透视表和VBA,尤其对Excel VBA有着相当丰富的开发经验和熟练的实战技能,也拥有丰硕的开发成果。
作者担任过近10个Excel相关论坛的版主,著有15本Excel图书,书名如下:
1.《Excel 2007 VBA范例大全》
2.《Excel 2007技法与行业应用实例精讲》
3.《Excel 2007 VBA开发技术大全》
4.《Excel 2007函数案例速查宝典》
5.《Excel VBA程序开发自学宝典》
6.《Excel 2010 VBA编程与实践》
7.《Excel 2010函数与图表速查手册》
8.《Excel VBA程序开发自学宝典(第2版)》
9.《Excel函数、图表与透视表从入门到精通》
10.《来吧!带你玩转Excel VBA》
11null
无
目录
第1 章 初步感受VBA 的魅力 .......................................................................................... 1
1.1 批量任务一键执行 ................................................................................................... 1
1.1.1 准备工作 ...................................................................................................... 1
1.1.2 程序测试 ...................................................................................................... 1
1.1.3 案例点评 ...................................................................................................... 2
1.2 数据汇总自动完成 ................................................................................................... 2
1.2.1 案例需求 ...................................................................................................... 2
1.2.2 程序测试 ...................................................................................................... 3
1.2.3 案例点评 ...................................................................................................... 3
1.2.4 开发专业程序 ............................................................................................... 4
第2 章 VBA 程序入门 ...................................................................................................... 5
2.1 如何存放代码 ........................................................................................................... 5
2.1.1 认识模块 ...................................................................................................... 5
2.1.2 管理模块 ...................................................................................................... 6
2.2 如何产生代码 ........................................................................................................... 7
2.2.1 复制现有的代码 ........................................................................................... 7
2.2.2 录制宏 .......................................................................................................... 7
2.2.3 手工编写代码 ............................................................................................... 9
2.2.4 从模板中获取代码 ..................................................................................... 10
2.3 如何调用代码 ......................................................................................................... 10
2.3.1 <F5>键 .................................................................................................... 10
2.3.2 <Alt+F8>组合键 ...................................................................................... 11
2.3.3 自定义快捷键 ............................................................................................. 12
2.3.4 按钮 ............................................................................................................ 12
2.3.5 菜单 ............................................................................................................ 13
2.4 如何保存代码 ......................................................................................................... 13
2.4.1 工作簿格式 ................................................................................................ 13
2.4.2 解决丢失代码问题 ..................................................................................... 14
2.4.3 显示文件扩展名 ......................................................................................... 14
2.5 如何放行代码 ......................................................................................................... 15
2.5.1 调整“宏设置” ......................................................................................... 16
2.5.2 添加受信任位置 ......................................................................................... 16
2.6 如何查询代码帮助 ................................................................................................. 17
2.6.1 Excel 不同版本中的帮助差异 .................................................................... 17
2.6.2 如何调用帮助系统 ..................................................................................... 17
2.7 如何简化开发难度 ................................................................................................. 19
2.7.1 录制宏 ........................................................................................................ 19
2.7.2 调用内置提示 ............................................................................................. 19
2.7.3 调用笔记 .................................................................................................... 21
第3 章 VBA 的程序结构详解 ......................................................................................... 22
3.1 Sub 过程基本语法 ................................................................................................. 22
3.1.1 认识程序结构 ............................................................................................. 22
3.1.2 为VBA 程序添加注释 ................................................................................ 23
3.2 过程的作用范围 ..................................................................................................... 24
3.2.1 何谓作用范围 ............................................................................................. 24
3.2.2 公有过程与私有过程的区别 ...................................................................... 24
3.3 过程的命名规则 ..................................................................................................... 25
3.4 过程的参数 ............................................................................................................ 25
3.5 过程的执行流程 ..................................................................................................... 26
3.5.1 正常的执行流程 ......................................................................................... 26
3.5.2 改变程序的执行流程 ................................................................................. 26
3.6 中断过程 ................................................................................................................ 27
3.6.1 结束过程:End Sub .................................................................................. 27
3.6.2 中途结束过程:Exit Sub ............................................................................ 27
3.6.3 中途结束一切:End .................................................................................. 27
3.6.4 暂停过程:Stop ......................................................................................... 27
3.6.5 手动暂停程序:Ctrl+Break ....................................................................... 28
第4 章 VBA 四大基本概念 ............................................................................................. 29
4.1 Excel 的对象 .......................................................................................................... 29
4.1.1 什么是对象 ................................................................................................ 29
4.1.2 对象与对象集合 ......................................................................................... 30
4.1.3 对象的层次结构 ......................................................................................... 32
4.1.4 父对象与子对象 ......................................................................................... 33
4.1.5 活动对象 .................................................................................................... 34
4.2 对象的方法和属性 ................................................................................................. 35
4.2.1 属性与方法的区别 ..................................................................................... 36
4.2.2 查询方法与属性的两种方法 ...................................................................... 36
4.2.3 方法与属性的应用差异 .............................................................................. 37
4.3 对象的事件 ............................................................................................................ 40
4.3.1 什么是事件 ................................................................................................ 40
4.3.2 事件的分类及其层级关系 .......................................................................... 41
4.3.3 工作簿事件与工作表事件一览 .................................................................. 41
4.3.4 工作簿与工作表事件的作用对象 .............................................................. 42
4.3.5 快速掌握事件过程 ..................................................................................... 44
4.3.6 何时需要使用事件过程 .............................................................................. 44
第5 章 通过变量强化程序功能 ...................................................................................... 45
5.1 数据类型 ................................................................................................................ 45
5.1.1 为什么要区分数据类型 .............................................................................. 45
5.1.2 认识VBA 的数据类型 ................................................................................ 45
5.2 声明变量 ................................................................................................................ 47
5.2.1 变量的定义 ................................................................................................ 47
5.2.2 变量的声明方式 ......................................................................................... 47
5.2.3 变量的赋值方式与初始值 .......................................................................... 49
5.2.4 如何确定变量的数据类型正确 .................................................................. 50
5.2.5 正确声明变量的数据类型的优势 .............................................................. 50
5.2.6 变量的作用域 ............................................................................................. 52
5.2.7 变量的生命周期 ......................................................................................... 53
5.3 对象变量 ................................................................................................................ 53
5.3.1 如何区分对象变量和数据变量 .................................................................. 54
5.3.2 对变量赋值 ................................................................................................ 54
5.3.3 使用对象变量的优势 ................................................................................. 55
5.4 声明常量 ................................................................................................................ 56
5.4.1 常量的定义与用途 ..................................................................................... 56
5.4.2 常量的声明方式 ......................................................................................... 57
5.2.3 常量的命名规则 ......................................................................................... 57
第6 章 详解五大常用对象 .............................................................................................. 59
6.1 对象基础知识 ......................................................................................................... 59
6.1.1 对象的结构 ................................................................................................ 59
6.1.2 对象与对象的集合 ..................................................................................... 60
6.1.3 引用集合中的单一对象 .............................................................................. 60
6.1.4 父对象与子对象 ......................................................................................... 60
6.1.5 活动对象 .................................................................................................... 61
6.1.6 使用变量简化对象的引用 .......................................................................... 61
6.1.7 使用With 语句简化对象的引用 ................................................................. 62
6.2 单元格对象 ............................................................................................................ 63
6.2.1 Range("A1")方式引用单元格 ..................................................................... 64
6.2.2 Cells(1,1)方式引用单元格 ......................................................................... 66
6.2.3 [a1]方式引用单元格 .................................................................................. 67
6.2.4 Range("A1")、Cells(1,1)与[a1]比较 ................................................ 68
6.2.5 Selection 与ActiveCell:当前选区与活动单元格 ..................................... 69
6.2.6 已用区域与当前区域 ................................................................................. 69
6.2.7 SpecialCells:按条件引用区域 ................................................................. 70
6.2.8 CurrentArray:引用数组区域 .................................................................... 74
6.2.9 Resize:重置区域大小 .............................................................................. 75
6.2.10 Offset:根据偏移量引用新区域 .............................................................. 76
6.2.11 Union:多区域合集 ................................................................................. 78
6.2.12 Intersect:单元格、区域的交集 .............................................................. 79
6.2.13 End:引用源区域的区域尾端的单元格 .................................................. 80
6.2.14 EntireRow/EntireColumn:扩展至整行、整列 ........................................ 81
6.2.15 RangeSelection:工作表中的选定单元格 .............................................. 82
6.2.16 VisibleRange:指定窗口的可见区域 ...................................................... 83
6.3 批注对象 ................................................................................................................ 84
6.3.1 批注对象的特点 ......................................................................................... 84
6.3.2 判断单元格中是否有批注 .......................................................................... 85
6.3.3 AddComment:对单元格添加批注 .......................................................... 85
6.3.4 AutoSize:让批注框自动缩放 ................................................................... 86
6.3.5 AutoShapeType:修改批注的外观 ........................................................... 86
6.3.6 ClearComments:清空表中所有批注 ....................................................... 86
6.4 图形对象 ................................................................................................................ 87
6.4.1 Shapes:图形对象集合 ............................................................................ 87
6.4.2 图形对象的名称 ......................................................................................... 87
6.4.3 隐藏的图形对象集合 ................................................................................. 88
6.5 表对象 .................................................................................................................... 90
6.5.1 表的类别 .................................................................................................... 90
6.5.2 Worksheets:工作表集合.......................................................................... 90
6.5.3 引用工作表子集 ......................................................................................... 91
6.5.4 ActiveSheet:活动表 ................................................................................. 91
6.5.5 工作表的特性 ............................................................................................. 92
6.5.6 新建工作表 ................................................................................................ 93
6.6 工作簿对象 ............................................................................................................ 93
6.6.1 工作簿格式与特性 ..................................................................................... 93
6.6.2 新建工作簿 ................................................................................................ 94
6.6.3 Workbooks:工作簿集合 .......................................................................... 94
6.6.4 引用工作簿子集 ......................................................................................... 94
6.6.5 ActiveWorkbook:活动工作簿 .................................................................. 94
第7 章 常用语句解析 ..................................................................................................... 95
7.1 输出/输入语句........................................................................................................ 95
7.1.1 MsgBox 函数 .............................................................................................. 95
7.1.2 Application.InputBox 方法 ......................................................................... 98
7.2 条件判断语句 ....................................................................................................... 103
7.2.1 IIf 函数的语法与应用 ............................................................................... 103
7.2.2 IIf 函数的 ........................................................................................... 105
7.2.3 If Then 语句的语法详解 ........................................................................... 106
7.2.4 If Then 应用案例 ...................................................................................... 106
7.2.5 If Then Else 语句的语法与应用 ............................................................... 107
7.2.6 多条件嵌套的条件判断语句 .................................................................... 110
7.2.7 Select Case 语法详解 .............................................................................. 114
7.2.8 Select Case 与If Then Else 之比较 ......................................................... 117
7.2.9 借用Choose 函数简化条件选择 ............................................................. 118
7.3 循环语句 .............................................................................................................. 120
7.3.1 For Next 语句 ........................................................................................... 120
7.3.2 For Each Next 语句 .................................................................................. 127
7.3.3 Do Loop 语法详解 ................................................................................... 132
7.4 错误处理语句 ....................................................................................................... 140
7.4.1 错误类型与原因 ....................................................................................... 140
7.4.2 err 对象及其属性、方法 .......................................................................... 141
7.4.3 认识Error 函数 ........................................................................................ 142
7.4.4 On Error GoTo line ................................................................................... 142
7.4.5 On Error Resume Next ............................................................................. 146
7.4.6 On Error GoTo 0 ...................................................................................... 151
7.5 浏览语句 .............................................................................................................. 151
7.5.1 认识FileDialog 对象 ................................................................................ 151
7.5.2 选择路径 .................................................................................................. 152
7.5.3 选择文件 .................................................................................................. 153
7.5.4 按类型选择文件 ....................................................................................... 154
第8 章 开发自启动程序 ............................................................................................... 157
8.1 让宏自动执行 ....................................................................................................... 157
8.1.1 Auto 自动宏 .............................................................................................. 157
8.1.2 升级版自动宏:事件 ............................................................................... 158
8.1.3 事件的禁用与启用 ................................................................................... 160
8.1.4 事件的特例 .............................................................................................. 161
8.2 工作表事件 .......................................................................................................... 162
8.2.1 在状态栏提示优选值的单元格地址 ......................................................... 162
8.2.2 快速输入出勤表 ....................................................................................... 163
8.2.3 在状态栏显示选区的字母、数字、汉字个数 ......................................... 164
8.2.4 实时监控单元格每一次编辑的数据与时间 ............................................. 166
8.2.5 利用数字简化公司名输入 ........................................................................ 168
8.2.6 输入数据时自动跳过带公式的单元格 ..................................................... 170
8.3 工作簿事件 .......................................................................................................... 171
8.3.1 新建工作表时自动设置页眉 .................................................................... 171
8.3.2 未汇总则禁止打印与关闭工作簿 ............................................................ 172
8.3.3 自动选中相同值并计数 ............................................................................ 174
8.3.4 设计未启用宏就无法打开的工作簿 ......................................................... 176
8.4 定时执行的程序 ................................................................................................... 177
8.4.1 基本语法 .................................................................................................. 178
8.4.2 每天在13:28 语音提示开会 .................................................................... 178
8.4.3 在单元格中显示当前时期 ........................................................................ 179
第9 章 综合应用案例 ................................................................................................... 181
9.1 Application 应用案例 ........................................................................................... 181
9.1.1 计算字符表达式 ....................................................................................... 181
9.1.2 合并相同且相邻的单元格 ........................................................................ 182
9.1.3 定时打印文件 ........................................................................................... 184
9.1.4 模拟键盘快捷键打开高级选项 ................................................................ 185
9.1.5 使用快捷键合并与取消合并单元格 ......................................................... 186
9.1.6 查找至少两月未付货款的客户名称 ......................................................... 188
9.2 Range 对象应用案例 ........................................................................................... 190
9.2.1 合并工作表 .............................................................................................. 190
9.2.2 合并区域且保留所有数据 ........................................................................ 193
9.2.3 合并计算多区域的值 ............................................................................... 194
9.2.4 模糊查找公司名称并罗列出来 ................................................................ 196
9.2.5 反向选择单元格 ....................................................................................... 198
9.2.6 插入图片并调整为选区大小 .................................................................... 200
9.2.7 提取唯一值 .............................................................................................. 202
9.2.8 隐藏所有公式结果为错误的单元格 ......................................................... 203
9.3 Comment 对象应用案例 ..................................................................................... 205
9.3.1 在所有批注末尾添加指定日期 ................................................................ 205
9.3.2 生成图片批注 ........................................................................................... 207
9.3.3 添加个性化批注 ....................................................................................... 208
9.3.4 批量修改当前表的所有批注外形 ............................................................ 210
9.4 WorkSheet 对象应用案例 .................................................................................... 213
9.4.1 新建工作表并且命名为今日日期 ............................................................ 213
9.4.2 批量保护工作表与解除保护 .................................................................... 214
9.4.3 为所有工作表设置水印 ............................................................................ 216
9.4.4 批量命名工作表 ....................................................................................... 218
9.4.5 判断筛选条件 ........................................................................................... 220
9.5 Workbook 对象应用案例 ..................................................................................... 223
9.5.1 拆分工作簿 .............................................................................................. 223
9.5.2 每10 分钟备份一次工作簿 ...................................................................... 225
9.5.3 5 分钟未编辑工作簿则自动备份 ............................................................. 226
9.5.4 记录文件打开次数 ................................................................................... 228
9.5.5 不打开工作簿而提取数据 ........................................................................ 230
9.5.6 建立指定文件夹下所有工作簿目录和工作表目录 .................................. 232
第10 章 编程规则与代码优化 ...................................................................................... 234
10.1 代码编写规则 ..................................................................................................... 234
10.1.1 对代码添加注释 ..................................................................................... 234
10.1.2 长代码分行 ............................................................................................ 237
10.1.3 代码缩进对齐 ......................................................................................... 238
10.1.4 声明有意义的变量名称 .......................................................................... 239
10.1.5 If Then End If 类配对语句的输入方式 ................................................... 240
10.1.6 输入属性与方法的技巧 .......................................................................... 240
10.1.7 无提示的词组的输入技巧 ...................................................................... 242
10.1.8 善用公共变量 ......................................................................................... 242
10.1.9 使用常量名称替代数值 .......................................................................... 243
10.1.10 尽可能兼容Excel 2003 到Excel 2019 之间的所有版本 ..................... 243
10.2 优化代码思路 ..................................................................................................... 244
10.2.1 强制声明变量 ......................................................................................... 244
10.2.2 善用常量 ................................................................................................ 244
10.2.3 关闭屏幕更新 ......................................................................................... 244
10.2.4 利用With 减少对象读取次数................................................................. 245
10.2.5 利用变量减少对象读取次数 .................................................................. 245
10.2.6 善用带$的字符串处理函数 .................................................................... 246
10.2.7 不使用Select 和Activate 直接操作对象 ............................................... 246
10.2.8 将与循环无关的语句放到循环语句外 ................................................... 247
10.2.9 利用Instr 函数简化字符串判断 ............................................................. 247
10.2.10 使用Replace 简化字符串连接 ............................................................ 248
10.3 借用参数简化程序调用 ..................................................................................... 248
10.3.1 参数的概念与用途 ................................................................................. 248
10.3.2 参数的语法结构 ..................................................................................... 249
10.3.3 设计带有必选参数的过程 ...................................................................... 249
10.3.4 设计带有可选参数的过程 ...................................................................... 251
10.3.5 设计带有不确定数量参数的过程 .......................................................... 253
10.3.6 参数的赋值方式 ..................................................................................... 254
第11 章 高阶应用1:数组 ........................................................................................... 256
11.1 数组基础 ............................................................................................................ 256
11.1.1 何谓数组 ................................................................................................ 256
11.1.2 数组的特点 ............................................................................................ 256
11.1.3 一维数组 ................................................................................................ 257
11.1.4 二维数组 ................................................................................................ 259
11.1.5 数组的参数 ............................................................................................ 260
11.1.6 声明数组变量 ......................................................................................... 261
11.1.7 动态数组与静态数组的区别 .................................................................. 263
11.1.8 释放动态数组的存储空间 ...................................................................... 268
11.2 数组函数 ............................................................................................................ 268
11.2.1 用函数创建数组 ..................................................................................... 268
11.2.2 获取数组元素 ......................................................................................... 270
11.2.3 判断变量是否为数组 ............................................................................. 270
11.2.4 转置数组 ................................................................................................ 271
11.2.5 获取数组的上标与下标 .......................................................................... 272
11.2.6 转换文本与数组 ..................................................................................... 273
11.2.7 筛选数组 ................................................................................................ 275
11.3 数组实战 ............................................................................................................ 276
11.3.1 将指定区域的单词统一为首字母大写 ................................................... 276
11.3.2 罗列不及格人员姓名、科目和成绩 ....................................................... 277
11.3.3 跨表搜索学员信息 ................................................................................. 278
11.3.4 将职员表按学历拆分成多个工作表 ....................................................... 280
11.3.5 将选区的数据在文本与数值间互换 ....................................................... 281
11.3.6 获取两列数据的相同项 .......................................................................... 283
11.3.7 无人值守的多工作簿自动汇总 .............................................................. 285
第12 章 高阶应用2:正则表达式 ................................................................................ 288
12.1 何谓正则表达式 ................................................................................................. 288
12.1.1 概念 ........................................................................................................ 288
12.1.2 特点 ........................................................................................................ 288
12.1.3 调用方式 ................................................................................................ 289
12.2 语法基础 ............................................................................................................ 290
12.2.1 调用正则表达式的基本格式 .................................................................. 290
12.2.2 正则表达式的对象、属性和方法 .......................................................... 291
12.2.3 匹配的优先顺序 ..................................................................................... 294
12.2.4 借用元字符强化搜索功能 ...................................................................... 295
12.3 正则表达式应用 ................................................................................................. 311
12.3.1 乱序字符串取值并汇总 .......................................................................... 311
12.3.2 计算建筑面积 ......................................................................................... 312
12.3.3 计算括号中的数字合计 .......................................................................... 313
12.3.4 删除字符串首尾的空白字符 .................................................................. 314
12.3.5 将字符串中的多段数字分列 .................................................................. 315
12.3.6 提取E-mail 地址 .................................................................................... 315
12.3.7 提取文件的路径和名称 .......................................................................... 316
12.3.8 汇总人民币 ............................................................................................ 317
12.3.9 开发分列函数 ......................................................................................... 318
12.3.10 删除重复字词 ....................................................................................... 319
第13 章 高阶应用3:字典 .......................................................................................... 321
13.1 Dictionary 对象基础 ........................................................................................... 321
13.1.1 Dictionary 对象的调用 ........................................................................... 321
13.1.2 Dictionary 对象的特点 ........................................................................... 323
13.1.3 Dictionary 对象的属性与方法 ................................................................ 323
13.2 Dictionary 对象的应用技巧 ................................................................................ 328
13.2.1 利用Dictionary 创建三级选单 ............................................................... 328
13.2.2 分类汇总 ................................................................................................ 330
13.2.3 对多列数据相同者应用背景色 .............................................................. 331
13.2.4 按姓名计数与求产量平均值 .................................................................. 332
13.2.5 按品名统计半年的产量合计 .................................................................. 333
第14 章 高阶应用4:设计窗体 ................................................................................... 335
14.1 UserForm 简介 ................................................................................................... 335
14.1.1 窗体与控件的用途 ................................................................................. 335
14.1.2 插入窗体与添加控件的方法 .................................................................. 335
14.2 窗体控件一览 ..................................................................................................... 336
14.2.1 标签 ........................................................................................................ 336
14.2.2 文本框 .................................................................................................... 336
14.2.3 命令按钮 ................................................................................................ 336
14.2.4 复合框 .................................................................................................... 337
14.2.5 列表框 .................................................................................................... 337
14.2.6 复选框 .................................................................................................... 337
14.2.7 选项按钮 ................................................................................................ 337
14.2.8 分组框 .................................................................................................... 337
14.2.9 切换按钮 ................................................................................................ 337
14.2.10 多页控件 .............................................................................................. 337
14.2.11 滚动条 .................................................................................................. 338
14.2.12 图像 ...................................................................................................... 338
14.2.13 RefEdit.................................................................................................. 338
14.2.14 附加控件 .............................................................................................. 338
14.3 设置控件属性 ..................................................................................................... 338
14.3.1 调整窗体控件位置与大小 ...................................................................... 339
14.3.2 设置控件的顺序 ..................................................................................... 339
14.3.3 共同属性与非共同属性 .......................................................................... 339
14.3.4 设置颜色属性 ......................................................................................... 339
14.3.5 设置控件的宽度与高度 .......................................................................... 340
14.3.6 设置Picture 属性 ................................................................................... 340
14.3.7 设置RowSource 属性 ............................................................................ 341
14.3.8 设置List 属性 ......................................................................................... 342
14.4 窗体与控件的事件 ............................................................................................. 343
14.4.1 UserForm 对象的事件 ........................................................................... 343
14.4.2 激活窗体时将所有工作表名称导入到列表框 ....................................... 344
14.4.3 双击或者按<Esc>键关闭窗体 ............................................................. 345
14.4.4 窗体永远显示在上左角 .......................................................................... 346
14.4.5 按下鼠标左键移动窗体,按下鼠标右键移动控件 ................................ 346
14.4.6 控件事件介绍 ......................................................................................... 348
14.4.7 在窗体中建立超链接 ............................................................................. 349
14.4.8 将鼠标指针移过时切换列表框数据 ....................................................... 351
14.4.9 让输入学号的文字框仅能输入6 位数字 ............................................... 352
14.4.10 运行窗体期间用鼠标调整文字框大小 ................................................. 354
14.4.11 为窗体中所有控件设置帮助 ................................................................ 355
14.5 窗体的综合应用案例 ......................................................................................... 357
14.5.1 设计登录界面 ......................................................................................... 357
14.5.2 权限认证窗口 ......................................................................................... 358
14.5.3 设计计划任务向导 ................................................................................. 359
14.5.4 设计文字滚动的动态帮助信息,并且可单击停止 ................................ 362
14.5.5 用窗体浏览图片 ..................................................................................... 364
14.5.6 设计多表输入面板 ................................................................................. 365
14.5.7 多条件高级查询 ..................................................................................... 367
第15 章 高阶应用5:VBA 与注册表 ........................................................................... 370
15.1 VBA 对注册表的控制方式 ................................................................................. 370
15.1.1 什么是注册表 ......................................................................................... 370
15.1.2 VBA 操作注册表的方法 ......................................................................... 371
15.2 注册表的应用(加入窗体的应用)................................................................... 372
15.2.1 记录最后一次打开工作簿的时间 .......................................................... 372
15.2.2 在窗体中浏览图片,自动记忆上次的路径 ........................................... 373
15.2.3 调整所有表的零值显示状态 .................................................................. 375
15.2.4 插入签名图片到活动单元格 .................................................................. 376
15.3 注册表函数的缺点与改善方法 .......................................................................... 377
15.3.1 VBA 操作注册表的缺点 ......................................................................... 377
15.3.2 借用脚本自由控制注册表 ...................................................................... 378
15.3.3 修改注册表禁用QQ 和记事本 .............................................................. 378
15.3.4 禁止使用U 盘 ........................................................................................ 380
第16 章 高阶应用6:处理文件与文件夹 ..................................................................... 382
16.1 认识FSO 对象、属性与方法 ............................................................................ 382
16.1.1 FSO 对象的调用方式 ............................................................................. 382
16.1.2 FSO 的对象 ............................................................................................ 383
16.1.3 FSO 常用对象的方法与属性 ................................................................. 383
16.2 用FSO 处理文件与文件夹 ................................................................................ 386
16.2.1 将D 盘中所有隐藏的文件夹显示出来 .................................................. 386
16.2.2 遍历子文件夹创建文件目录 .................................................................. 387
16.2.3 删除D 盘中大小为0 的文件夹 ............................................................. 388
16.2.4 罗列最近三天修改过的所有文件的名称 ............................................... 389
16.3 读/写文本文件 ................................................................................................... 390
16.3.1 创建文本文件并写入内容 ...................................................................... 390
16.3.2 读取文本文件 ......................................................................................... 391
16.3.3 开发拆分工作簿工具,可加载参数 ....................................................... 391
第17 章 高阶应用7:开发自定义函数 ........................................................................ 396
17.1 自定义函数的功能和语法 .................................................................................. 396
17.1.1 Function 过程与Sub 过程的区别 .......................................................... 396
17.1.2 Function 过程的语法 ............................................................................. 396
17.1.3 自定义函数的命名规则 .......................................................................... 398
17.2 开发不带参数的Function 过程 ......................................................................... 398
17.2.1 判断活动工作簿是否存在图形对象 ....................................................... 398
17.2.2 计算公式所在单元格的页数 .................................................................. 399
17.3 开发带有一个参数的Function 过程 .................................................................. 400
17.3.1 在不规则的合并单元格中执行合计 ....................................................... 400
17.3.2 计算单元格中“元”前方的数值之和 ................................................... 401
17.4 开发带有两个参数的Function 过程 .................................................................. 403
17.4.1 提取所有数值与汇总 ............................................................................. 403
17.4.2 获取优选值、最小值或众数的地址 ....................................................... 404
17.4.3 去除括号后计算表达式 .......................................................................... 406
17.5 开发复杂的Function 过程 ................................................................................. 407
17.5.1 按条件串连字符 ..................................................................................... 407
17.5.2 按单元格背景颜色进行条件求和 .......................................................... 409
17.5.3 按颜色查找并返回数组 .......................................................................... 410
17.5.4 计算两列的相同项与不同项 .................................................................. 412
17.6 编写函数帮助 ..................................................................................................... 414
17.6.1 MacroOptions 方法的语法 .................................................................... 414
17.6.2 为函数分类及添加说明 .......................................................................... 415
第18 章 高阶应用8:Ribbon 功能区设计 ................................................................... 417
18.1 功能区开发基础 ................................................................................................. 417
18.1.1 Ribbon 的特点 ....................................................................................... 417
18.1.2 功能区的组件图示 ................................................................................. 417
18.1.3 手工定制功能区 ..................................................................................... 418
18.1.4 认识Ribbon 代码编辑器 ....................................................................... 418
18.1.5 获取内置按钮图标 ................................................................................. 419
18.2 Ribbon 定制之语法分析 .................................................................................. 420
18.2.1 功能区代码的结构 ................................................................................. 420
18.2.2 显示与隐藏功能区:ribbon ................................................................... 422
18.2.3 隐藏选项卡:tab ................................................................................... 423
18.2.4 创建新选项卡:tab................................................................................ 424
18.2.5 创建新组:group ................................................................................... 425
18.2.6 创建对话框启动器:dialogBoxLauncher .............................................. 426
18.2.7 在组中添加命令按钮:button ............................................................... 428
18.2.8 创建切换按钮:toggleButton ................................................................ 430
18.2.9 标签与复选框:labelControl/ checkBox ............................................... 431
18.2.10 在按钮之间添加分隔条:separator .................................................... 432
18.2.11 创建弹出式菜单:menu ...................................................................... 433
18.2.12 创建拆分按钮:SplitButton ................................................................. 434
18.2.13 创建下拉列表:DropDown ................................................................. 436
18.2.14 创建编辑框:editBox .......................................................................... 437
18.2.15 锁定或隐藏内置命令 ........................................................................... 438
18.3 使用回调函数强化功能区 .................................................................................. 439
18.3.1 为什么需要使用回调函数 ...................................................................... 439
18.3.2 回调函数详解 ......................................................................................... 439
18.3.3 创建在每月的1 日到3 日才能使用的按钮 ........................................... 442
18.3.4 创建按下与弹起时自动切换图标的按钮 ............................................... 443
18.3.5 创建一个能显示图形对象数量的标签 ................................................... 445
18.3.6 在功能区中快速查找 ............................................................................. 446
18.3.7 在组的标签处显示问候语 ...................................................................... 448
18.3.8 调用大图片创建下拉菜单 ...................................................................... 449
18.3.9 通过复选框控制错误标识的显示状态 ................................................... 452
18.3.10 在功能区创建工作表目录 .................................................................... 454
18.4 使用模板 ............................................................................................................ 455
18.4.1 模板的重要性 ......................................................................................... 455
18.4.2 模板的使用方法 ..................................................................................... 456
18.5 制作两个模板 ..................................................................................................... 456
第19 章 高阶应用9:与Word/PPT 协同办公 ............................................................. 460
19.1 操作Word 和PPT 文件的基本思路 .................................................................. 460
19.1.1 引用对象 ................................................................................................ 460
19.1.2 代码模板 ................................................................................................ 461
19.1.3 改造代码 ................................................................................................ 462
19.2 使用VBA 操作Word .......................................................................................... 465
19.2.1 批量替换Word 文档 .............................................................................. 465
19.2.2 根据Excel 成绩表批量生成Word 通知单 ............................................. 467
19.2.3 将Word 版的简历提取到Excel 表 ........................................................ 471
19.2.4 批量插入图片到Word 并创建目录 ....................................................... 474
19.3 使用VBA 操作PPT ............................................................................................ 476
19.3.1 根据明细表和图片自动生成PPT .......................................................... 477
19.3.2 批量从PPT 中取值到Excel ................................................................... 481
第20 章 高阶应用10:开发通用插件 .......................................................................... 485
20.1 认识加载宏 ........................................................................................................ 485
20.1.1 加载宏的特点 ......................................................................................... 485
20.1.2 为什么使用加载宏 ................................................................................. 486
20.1.3 加载项管理器 ......................................................................................... 487
20.1.4 加载内置的加载项 ................................................................................. 487
20.1.4 安装与卸载自定义加载宏 ...................................................................... 487
20.1.6 开发加载宏应选哪种格式 ...................................................................... 488
20.1.7 安装加载宏后如何引用其数据 .............................................................. 488
20.1.8 设计加载宏的附加工作 .......................................................................... 488
20.2 开发合并工作表插件 ......................................................................................... 489
20.2.1 确认程序需具备的功能 .......................................................................... 489
20.2.2 设计窗体 ................................................................................................ 489
20.2.3 生成窗体代码 ......................................................................................... 490
20.2.4 设计功能区菜单 ..................................................................................... 492
20.2.5 安装插件并测试功能 ............................................................................. 494
20.3 开发批量打印标签插件 ..................................................................................... 496
20.3.1 确认程序需具备的功能 .......................................................................... 496
20.3.2 设计模板 ................................................................................................ 496
20.3.3 编写代码 ................................................................................................ 496
20.3.4 设计功能区菜单 ..................................................................................... 499
20.3.5 安装插件并测试功能 ............................................................................. 500