适合《Excel VBA程序开发自学宝典(第3版)》的读者包括三类:
1.VBA零基础者,通过本书踏入VBA的门槛。
2.已有VBA基础但需要扩充知识面者。本书涉及的VBA知识全面详尽,包含了VBA所必须的基础知识,同时提供正则表达式、FSO、字典、注册表、功能区设计和封装代码等边缘性知识,从而让读者对VBA掌握得更全面。
3.已对VBA有相当的认识,但想开发更专业的商业软件者。本书对开发加载宏、自动化加载项和COM加载项都有详细的阐述。同时还提供制作安装程序的教学思路。
《Excel VBA程序开发自学宝典(第3版)》是VBA入门与提高的经典教材。全书分上下两篇,上篇包含入门知识,对VBA的基础理论、语法规则、编写思路、代码优化思路等都提供了详尽的理论阐述和案例演示。下篇包含进阶知识,提供窗体设计、正则表达式、字典、FileSystemObject、类模块、注册表、功能区设计、开发加载宏、封装代码等高级应用。
《Excel VBA程序开发自学宝典(第3版)基于Excel 2010撰写,不过代码可在Excel 2007、Excel 2010和Excel 2013中通用。
《Excel VBA程序开发自学宝典(第3版)是《Excel VBA程序开发自学宝典(第2版)》的升级版,在升级过程中做了大量(不少于60%)的修改,包括调整章节顺序、舍弃部分实用性不大的内容、修改书写方式、完善代码的含义注释、删除已经过时的一些技巧、增加全新案例等。
《Excel VBA程序开发自学宝典(第3版)向读者赠送了更新版的Excel百宝箱的安装文件、源代码和动画帮助,保存在随书光盘中。
上 篇
第1 章 初步感受VBA 的魅力
1.1 批量任务一键执行
1.1.1 准备工作
1.1.2 程序测试
1.1.3 案例点评
1.2 多工作簿自动汇总
1.2.1 案例需求
1.2.2 程序测试
1.2.3 案例点评
1.3 浅谈VBA 优势
1.3.1 批量执行任务
1.3.2 将复杂的任务简单化
1.3.3 提升工作表数据的安全性
1.3.4 提升数据的准确性
1.3.5 完成Excel 本身无法完成的任务
1.3.6 开发专业程序
第2 章 VBA 程序入门
2.1 如何存放代码
2.1.1 认识模块
2.1.2 管理模块
2.2 如何产生代码
2.2.1 复制现有的代码
2.2.2 录制宏
2.2.3 手工编写代码
2.2.4 从模板中获取代码
2.3 如何调用代码
2.3.1 F5 键
2.3.2 Alt+F8 组合键
2.3.3 自定义快捷键
2.3.4 按钮
2.3.5 菜单
2.4 如何保存代码
2.4.1 工作簿格式
2.4.2 解决代码丢失问题
2.4.3 显示文件扩展名
2.5 如何放行代码
2.6 如何查询代码帮助
2.6.1 调用帮助系统
2.6.2 为什么查看不了帮助
第3 章 VBA 的程序结构分析
3.1 子过程的结构
3.1.1 认识程序结构
3.1.2 为VBA 程序添加注释
3.2 子过程的作用范围
3.2.1 何谓作用范围
3.2.2 公有过程与私有过程的区别
3.3 过程的命名规则
3.4 过程的参数
3.5 过程的执行流程
3.5.1 正常的执行流程
3.5.2 改变程序的执行流程
3.6 中断过程
3.6.1 结束过程:End Sub
3.6.2 中途结束过程:Exit sub
3.6.3 中途结束一切:End
3.6.4 暂停过程:Stop
3.6.5 手动暂停程序:Ctrl+Break
第4 章 VBA 四大基本概念
4.1 Excel 的对象
4.1.1 什么是对象
4.1.2 对象与对象集合
4.1.3 对象的层次结构
4.1.4 父对象与子对象
4.1.5 活动对象
4.2 对象的方法和属性
4.2.1 属性与方法的区别
4.2.2 查询方法与属性的两种方法
4.2.3 方法与属性的应用差异
4.3 对象的事件
4.3.1 什么是事件
4.3.2 事件的分类及其层级关系
4.3.3 工作簿事件与工作表事件一览
4.3.4 工作簿与工作表事件的作用对象
4.3.5 快速掌握事件过程
4.3.6 何时需要使用事件过程
第5 章 通过变量强化程序功能
5.1 数据类型
5.1.1 为什么要区分数据类型
5.1.2 认识VBA 的数据类型
5.2 声明变量
5.2.1 变量的定义
5.2.2 变量的声明方式
5.2.3 变量的赋值方式与初始值
5.2.4 如何确定变量的数据类型正确
5.2.5 正确声明变量的数据类型的优势
5.2.6 变量的作用域
5.2.7 变量的生存周期
5.3 对象变量
5.3.1 如何区分对象变量和数据变量
5.3.2 对变量赋值
5.3.3 使用对象变量的优势
5.4 声明常量
5.4.1 常量的定义与用途
5.4.2 常量的声明方式
5.4.3 常量的命名规则
第6 章 深入剖析常见对象的引用方式
6.1 关于对象
6.1.1 对象的结构
6.1.2 对象与对象的集合
6.1.3 引用集合中的单一对象
6.1.4 父对象与子对象
6.1.5 活动对象
6.2 对象的简化引用
6.2.1 使用对象变量
6.2.2 使用With 语句
6.3 单元格对象
6.3.1 Range("A1")方式引用单元格
6.3.2 Cells(1,1)方式引用单元格
6.3.3 [a1]方式引用单元格
6.3.4 Range("A1")、Cells(1,1)与[a1]引用单元格方式比较
6.3.5 Selection 与ActiveCell:当前选区与活动单元格
6.3.6 已用区域与当前区域
6.3.7 SpecialCells:按条件引用区域
6.3.8 CurrentArray:引用数组区域
6.3.9 Resize:重置区域大小
6.3.10 Offset:根据偏移量引用新区域
6.3.11 Union:多区域合集
6.3.12 Intersect:单元格、区域的交集
6.3.13 End:引用源区域的区域尾端的单元格
6.3.14 RangeFromPoint:屏幕坐标下的单元格
6.4 图形对象
6.4.1 Shapes:图形对象集合
6.4.2 图形对象的名称
6.4.3 DrawingObjects:隐藏的图形对象集合
6.5 表对象
6.5.1 表的类别
6.5.2 Worksheets:工作表集合
6.5.3 引用工作表子集
6.5.4 ActiveSheet:活动表
6.5.5 工作表的特性
6.6 工作簿对象
6.6.1 工作簿格式与特性
6.6.2 Workbooks:工作簿集合
6.6.3 引用工作簿子集
6.6.4 活动工作簿
第7 章 常用语句的语法剖析
7.1 创建输入框
7.1.1 Application.Inputbox 方法
7.1.2 基本语法
7.1.3 案例应用
7.2 条件判断语句
7.2.1 IIF 函数的语法与应用
7.2.2 IIF 函数的限制
7.2.3 IF Then 语句的语法详解
7.2.4 IF Then 应用案例
7.2.5 IF Then Else 语句的语法与应用
7.2.6 多条件嵌套的条件判断语句
7.2.7 Select Case 语法详解
7.2.8 Select Case 与IF Then Else 之比较
7.2.9 借用Choose 函数简化条件选择
7.3 循环语句
7.3.1 For Next 语句
7.3.2 For Each Next 语句
7.3.3 Do Loop 语法详解
7.4 错误处理语句
7.4.1 错误类型与原因
7.4.2 Err 对象及其属性、方法
7.4.3 认识Error 函数
7.4.4 On Error GoTo line
7.4.5 On Error Resume Next
7.4.6 On Error GoTo 0
7.5 选择文件与文件夹
7.5.1 认识FileDialog 对象
7.5.2 选择路径
7.5.3 选择文件
7.5.4 按类型选择文件
第8 章 让代码自动执行
8.1 让宏自动执行
8.1.1 Auto 自动宏
8.1.2 升级版自动宏:事件
8.1.3 事件的禁用与启用
8.1.4 事件的特例
8.2 工作表事件应用案例
8.2.1 在状态栏提示最大值的单元格地址
8.2.2 快速录入出勤表
8.2.3 在状态栏显示选区的字母、数字、汉字个数
8.2.4 实时监控单元格每一次编辑的数据与时间
8.2.5 利用数字简化公司名输入
8.2.6 录入数据时自动跳过带公式的单元格
8.2.7 对选择区域进行背景着色
8.3 工作簿事件应用案例
8.3.1 新建工作表时自动设置页眉
8.3.2 未汇总则禁止打印与关闭工作簿
8.3.3 为所有工作表设计一个阅读模式
8.3.4 设计未启用宏就无法打开的工作簿
第9 章 综合应用案例
9.1 Application 应用案例
9.1.1 计算字符表达式
9.1.2 合并相同且相邻的单元格
9.1.3 在指定时间提示行程安排
9.1.4 模拟键盘快捷键打开高级选项
9.1.5 使用快捷键合并与取消单元格
9.1.6 查找至少两月未付货款的客户名称
9.2 Range 对象应用案例
9.2.1 合并工作表
9.2.2 合并区域且保留所有数据
9.2.3 合并计算多区域的值
9.2.4 模糊查找公司名称并罗列出来
9.2.5 反向选择单元格
9.2.6 插入图片并调整为选区大小
9.2.7 提取唯一值
9.2.8 隐藏所有公式结果为错误的单元格
9.3 Comment 对象应用案例
9.3.1 在所有批注末尾添加指定日期
9.3.2 生成图片批注
9.3.3 添加个性化批注
9.3.4 批量修改当前表的所有批注外观
9.4 WorkSheet 对象应用案例
9.4.1 新建工作表且命名为今日日期
9.4.2 批量保护工作表与解除保护
9.4.3 为所有工作表设置水印
9.4.4 批量命名工作表
9.4.5 判断筛选条件
9.5 Workbook 对象应用案例
9.5.1 拆分工作簿
9.5.2 每10 分钟备份一次工作簿
9.5.3 5 分钟未编辑工作簿则自动备份
9.5.4 记录文件打开次数
9.5.5 不打开工作簿而提取数据
9.5.6 建立指定文件夹下所有工作簿目录和工作表目录
第10 章 编程规则与代码优化
10.1 代码编写规则
10.1.1 对代码添加注释
10.1.2 长代码分行
10.1.3 代码缩进对齐
10.1.4 声明有意义的变量名称
10.1.5 IF Then…End If 类配对语句的录入方式
10.1.6 录入事件代码的方式
10.1.7 录入属性与方法的技巧
10.1.8 无提示的词组的录入技巧
10.1.9 善用公共变量
10.1.10 将比较大的过程分为多个再调用
10.1.11 减少过程参数
10.1.12 使用DoEvents 转移控制权
10.1.13 使用常量名称替代常数
10.1.14 尽可能兼容Excel 2003、2010 和2013 版本
10.2 优化代码
10.2.1 强制声明变量
10.2.2 善用常量
10.2.3 关闭屏幕更新
10.2.4 利用With 减少对象读取次数
10.2.5 利用变量减少对象读取次数
10.2.6 善用带$的字符串处理函数
10.2.7 利用数组代替单元格对象
10.2.8 不使用Select 和Activate 直接操作对象
10.2.9 将与循环无关的语句放到循环语句外
10.2.10 利用Instr 函数简化字符串判断
10.2.11 使用Replace 函数简化字符串连接
第11 章 利用参数强化过程
11.1 什么是参数
11.1.1 参数的概念与用途
11.1.2 参数的语法结构
11.2 设计带有参数的Sub 过程