内容简介
第Ⅰ部分Excel VBA基础知识
第1章 电子表格应用开发入门
1.1关于电子表格应用
1.2应用开发的步骤
1.3确定用户的需求
1.4对满足这些需求的应用进行规划
1.5确定最适用的用户界面
1.5.1自定义功能区
1.5.2自定义快捷菜单
1.5.3创建快捷键
1.5.4创建自定义对话框
1.5.5在工作表中使用ActiveX控件
1.5.6开始开发工作
1.6关注最终用户
1.6.1测试应用
1.6.2应用的安全问题
1.6.3如何让应用程序看起来更简明美观
1.6.4创建用户帮助系统
1.6.5将开发成果归档
1.6.6给用户发布应用程序
1.6.7在必要时对应用进行更新
1.7其他开发问题
1.7.1用户安装的Excel版本
1.7.2语言问题
1.7.3系统速度
1.7.4显示模式
第2章VBA概述
2.1宏录制器
2.1.1创建你的第一个宏
2.1.2比较宏录制的绝对模式和相对模式
2.1.3关于宏录制的其他概念
2.2 Visual Basic编辑器概述
2.2.1了解VBE组件
2.2.2使用工程资源管理器
2.2.3使用代码窗口
2.2.4自定义VBA环境
2.2.5“编辑器格式”选项卡
2.2.6“通用”选项卡
2.2.7“可连接的”选项卡
2.3 VBA的基础知识
2.3.1了解对象
2.3.2了解集合
2.3.3了解属性
2.4使用Range对象
2.4.1找到Range对象的属性
2.4.2 Range属性
2.4.3 Cells属性
2.4.4 Offset属性
2.5需要记住的基本概念
2.6学习更多信息
2.6.1阅读本书剩余的章节
2.6.2让Excel来帮助编写宏
2.6.3使用帮助系统
2.6.4使用对象浏览器
2.6.5从网上获取
2.6.6利用用户论坛
2.6.7访问专家博客
2.6.8通过YouTube查找视频
2.6.9通过Microsoft OfficeDev Center获取信息
2.6.10解析其他的Excel文件
2.6.11咨询周围的Excel人才
第3章VBA编程基础
3.1 VBA语言元素概览
3.2注释
3.3变量、数据类型和常量
3.3.1定义数据类型
3.3.2声明变量
3.3.3变量的作用域
3.3.4使用常量
3.3.5使用字符串
3.3.6使用日期
3.4赋值语句
3.5数组
3.5.1声明数组
3.5.2声明多维数组
3.5.3声明动态数组
3.6对象变量
3.7用户自定义的数据类型
3.8内置函数
3.9处理对象和集合
3.9.1 With-End With结构
3.9.2 For Each-Next结构
3.10控制代码的执行
3.10.1 GoTo语句
3.10.2 If-Then结构
3.10.3 Select Case结构
3.10.4指令块的循环
第4章VBA的子过程
4.1关于过程
4.1.1子过程的声明
4.1.2过程的作用域
4.2执行子过程
4.2.1通过“运行子过程/用户窗体”命令执行过程
4.2.2从“宏”对话框执行过程
4.2.3用Ctrl+快捷键组合执行过程
4.2.4从功能区执行过程
4.2.5从自定义快捷菜单中执行过程
4.2.6从另一个过程中执行过程
4.2.7通过单击对象执行过程
4.2.8在事件发生时执行过程
4.2.9从“立即窗口”执行过程
4.3向过程中传递参数
4.4错误处理技术
4.4.1捕获错误
4.4.2错误处理示例
4.5使用子过程的实际示例
4.5.1目标
4.5.2工程需求
4.5.3已经了解的信息
4.5.4解决方法
4.5.5初步的录制工作
4.5.6初始设置
4.5.7代码的编写
4.5.8排序过程的编写
4.5.9更多测试
4.5.10修复问题
4.5.11实用程序的可用性
4.5.12对工程进行评估
第5章 创建函数过程
5.1子过程与函数过程的比较
5.2为什么创建自定义的函数
5.3自定义函数示例
5.3.1在工作表中使用函数
5.3.2在VBA过程中使用函数
5.3.3分析自定义函数
5.4函数过程
5.4.1函数的作用域
5.4.2执行函数过程
5.5函数过程的参数
5.6函数示例
5.6.1无参数的函数
5.6.2带有一个参数的函数
5.6.3带有两个参数的函数
5.6.4使用数组作为参数的函数
5.6.5带有可选参数的函数
5.6.6 返回VBA数组的函数
5.6.7返回错误值的函数
5.6.8带有不定数量参数的函数
5.7模拟Excel的SUM函数
5.8扩展后的日期函数
5.9函数的调试
5.10使用“插入函数”对话框
5.10.1使用MacroOptions方法
5.10.2指定函数类别
5.10.3手动添加函数说明
5.11使用加载项存储自定义函数
5.12使用Windows API
5.12.1 Windows API示例
5.12.2确定Windows目录
5.12.3检测Shift键
5.12.4了解有关API函数的更多信息
第6章 了解Excel事件
6.1 Excel可以监视的事件类型
6.1.1了解事件发生的顺序
6.1.2存放事件处理程序的位置
6.1.3禁用事件
6.1.4输入事件处理代码
6.1.5使用参数的事件处理程序
6.2工作簿级别的事件
6.2.1 Open事件
6.2.2 Activate事件
6.2.3 SheetActivate事件
6.2.4 NewSheet事件
6.2.5 BeforeSave事件
6.2.6 Deactivate事件
6.2.7 BeforePrint事件
6.2.8 BeforeClose事件
6.3检查工作表事件
6.3.1 Change事件
6.3.2监视特定单元格区域的修改
6.3.3 SelectionChange事件
6.3.4 BeforeDoubleClick事件
6.3.5 BeforeRightClick事件
6.4监视应用程序事件
6.4.1启用应用程序级别的事件
6.4.2确定工作簿何时被打开
6.4.3监视应用程序级别的事件
6.5访问与对象无关联的事件
6.5.1 OnTime事件
6.5.2 OnKey事件
第7章VBA编程示例与技巧
7.1通过示例学习
7.2处理单元格区域
7.2.1复制单元格区域
7.2.2移动单元格区域
7.2.3复制大小可变的单元格区域
7.2.4选中或者识别各种类型的单元格区域
7.2.5调整单元格区域大小
7.2.6提示输入单元格中的值
7.2.7在下一个空单元格中输入一个值
7.2.8暂停宏的运行以便获得用户选中的单元格区域
7.2.9计算选中单元格的数目
7.2.10确定选中的单元格区域的类型
7.2.11有效地循环遍历选中的单元格区域
7.2.12删除所有空行
7.2.13任意次数地复制行
7.2.14确定单元格区域是否包含在另一个单元格区域内
7.2.15 确定单元格的数据类型
7.2.16读写单元格区域
7.2.17在单元格区域中写入值的更好方法
7.2.18传递一维数组中的内容
7.2.19将单元格区域传递给Variant类型的数组
7.2.20按数值选择单元格
7.2.21复制非连续的单元格区域
7.3处理工作簿和工作表
7.3.1保存所有工作簿
7.3.2保存和关闭所有工作簿
7.3.3隐藏除选区之外的区域
7.3.4创建超链接内容表
7.3.5同步工作表
7.4 VBA技巧
7.4.1切换布尔类型的属性值
7.4.2显示日期和时间
7.4.3显示友好时间
7.4.4获得字体列表
7.4.5对数组进行排序
7.4.6处理一系列文件
7.5用于代码中的一些有用函数
7.5.1 FileExists函数
7.5.2 FileNameOnly函数
7.5.3 PathExists函数
7.5.4 RangeNameExists函数
7.5.5 SheetExists函数
7.5.6 WorkbookIsOpen函数
7.5.7检索已经关闭的工作簿中的值
7.6一些有用的工作表函数
7.6.1返回单元格的格式信息
7.6.2会说话的工作表
7.6.3显示保存或打印文件的时间
7.6.4理解对象的父对象
7.6.5计算介于两个值之间的单元格数目
7.6.6 确定行或列中最后一个非空的单元格
7.6.7字符串与模式匹配
7.6.8从字符串中提取第n个元素
7.6.9拼写出数字
7.6.10多功能函数
7.6.11 SHEETOFFSET函数
7.6.12返回所有工作表中的最大值
7.6.13返回没有重复随机整数元素的数组
7.6.14随机化单元格区域
7.6.15 对单元格区域进行排序
7.7 Windows API调用
7.7.1理解API声明
7.7.2确定文件的关联性
7.7.3确定默认打印机的信息
7.7.4确定视频显示器的信息
7.7.5读写注册表
第Ⅱ部分 高级VBA技术
第8章 使用透视表
8.1数据透视表示例
8.1.1创建数据透视表
8.1.2检查录制的数据透视表代码
8.1.3整理录制的数据透视表代码
8.2创建更复杂的数据透视表
8.2.1创建数据透视表的代码
8.2.2更复杂数据透视表的工作原理
8.3创建多个数据透视表
8.4创建转换的数据透视表
第9章 使用图表
9.1关于图表
9.1.1图表的位置
9.1.2宏录制器和图表
9.1.3 Chart对象模型
9.2创建嵌入式图表
9.3在图表工作表上创建图表
9.4修改图表
9.5使用VBA激活图表
9.6移动图表
9.7使用VBA使图表取消激活
9.8确定图表是否被激活
9.9从ChartObjects或Charts集合中删除图表
9.10循环遍历所有图表
9.11调整ChartObjects对象的大小并对齐
9.12创建大量图表
9.13导出图表
9.14修改图表中使用的数据
9.14.1基于活动单元格修改图表数据
9.14.2用VBA确定图表中使用的单元格区域
9.15 使用VBA在图表上显示任意数据标签
9.16在用户窗体中显示图表
9.17理解图表事件
9.17.1使用图表事件的一个示例
9.17.2为嵌入式图表启用事件
9.17.3示例:在嵌入式图表上使用图表事件
9.18 VBA制图技巧
9.18.1在整个页面上打印嵌入式图表
9.18.2创建未链接的图表
9.18.3用MouseOver事件显示文本
9.18.4滚动图表
9.19使用迷你图
第10章 与其他应用程序的交互
10.1了解Microsoft Office自动化
10.1.1了解绑定概念
10.1.2一个简单的自动化示例
10.2从Excel中自动执行Access任务
10.2.1从Excel中运行Access查询
10.2.2从Excel运行Access宏
10.3从Excel自动执行Word任务
10.3.1将Excel数据传递给Word文档
10.3.2模拟Word文档的邮件合并功能
10.4从Excel自动执行PowerPoint任务
10.4.1将Excel数据发送到PowerPoint演示文稿中
10.4.2将所有Excel图表发送到PowerPoint演示文稿中
10.4.3将工作表转换成PowerPoint演示文稿
10.5从Excel自动执行Outlook任务
10.5.1以附件形式发送活动工作簿
10.5.2以附件形式发送指定单元格区域
10.5.3以附件形式发送指定的单个工作表
10.5.4发送给联系人列表中的所有Email地址
10.6从Excel启动其他应用程序
10.6.1使用VBA的Shell函数
10.6.2使用Windows的ShellExecute API函数
10.6.3使用AppActivate语句
10.6.4激活“控制面板”对话框
第11章 处理外部数据和文件
11.1处理外部数据连接
11.1.1手动创建连接
11.1.2手动编辑数据连接
11.1.3使用VBA创建动态连接
11.1.4遍历工作簿中的所有连接
11.2使用ADO和VBA来提取外部数据
11.2.1连接字符串
11.2.2声明记录集
11.2.3引用ADO对象库
11.2.4以编程方式使用ADO连接Access
11.2.5对活动工作簿使用ADO
11.3处理文本文件
11.3.1打开文本文件
11.3.2读取文本文件
11.3.3编写文本文件
11.3.4获取文件序号
11.3.5确定或设置文件位置
11.3.6读写语句
11.4文本文件操作示例
11.4.1导入文本文件的数据
11.4.2将单元格区域的数据导出到文本文件
11.4.3将文本文件的内容导出到单元格区域
11.4.4记录Excel日志的用法
11.4.5筛选文本文件
11.5执行常见的文件操作
11.5.1使用与VBA文件相关的指令
11.5.2使用FileSystemObject对象
11.6压缩和解压缩文件
11.6.1压缩文件
11.6.2解压缩文件
第Ⅲ部分 操作用户窗体
第12章 使用自定义对话框
12.1创建用户窗体之前需要了解的内容
12.2使用输入框
12.2.1 VBA的InputBox函数
12.2.2 Excel的InputBox方法
12.3 VBA的MsgBox函数
12.4 Excel的GetOpenFilename方法
12.5 Excel的GetSaveAsFilename方法
12.6提示输入目录名称
12.7显示Excel的内置对话框
12.8显示数据记录单
12.8.1使得数据记录单变得可以访问
12.8.2通过使用VBA来显示数据记录单
第13章 用户窗体概述
13.1 Excel如何处理自定义对话框
13.2插入新的用户窗体
13.3向用户窗体中添加控件
13.4“工具箱”中的控件
13.4.1复选框
13.4.2组合框
13.4.3命令按钮
13.4.4框架
13.4.5图像
13.4.6 标签
13.4.7列表框
13.4.8多页
13.4.9选项按钮
13.4.10 RefEdit
13.4.11滚动条
13.4.12数值调节钮
13.4.13 TabStrip
13.4.14文本框
13.4.15切换按钮
13.5调整用户窗体的控件
13.6调整控件的属性
13.6.1使用“属性”窗口
13.6.2共同属性
13.6.3满足键盘用户的需求
13.7显示用户窗体
13.7.1调整显示位置
13.7.2显示非模态的用户窗体
13.7.3显示基于变量的用户窗体
13.7.4加载用户窗体
13.7.5关于事件处理程序
13.8关闭用户窗体
13.9创建用户窗体的示例
13.9.1创建用户窗体
13.9.2编写代码显示对话框
13.9.3测试对话框
13.9.4添加事件处理程序
13.9.5完成对话框
13.10理解用户窗体的事件
13.10.1了解事件
13.10.2用户窗体的事件
13.10.3数值调节钮的事件
13.10.4数值调节钮与文本框配套使用
13.11引用用户窗体的控件
13.12自定义“工具箱”
13.12.1在“工具箱”中添加新页
13.12.2自定义或组合控件
13.12.3添加新的ActiveX控件
13.13创建用户窗体的模板
13.14用户窗体问题检测列表
第14章 用户窗体示例
14.1创建用户窗体式菜单
14.1.1在用户窗体中使用命令按钮
14.1.2在用户窗体中使用列表框
14.2从用户窗体选中单元格区域
14.3创建欢迎界面
14.4禁用用户窗体的关闭按钮
14.5改变用户窗体的大小
14.6在用户窗体中缩放和滚动工作表
14.7列表框技巧
14.7.1向列表框控件中添加条目
14.7.2确定列表框中选中的条目
14.7.3确定列表框中的多个选中条目
14.7.4单个列表框中的多个列表
14.7.5列表框条目的转移
14.7.6在列表框中移动条目
14.7.7使用多列的列表框控件
14.7.8使用列表框选中工作表中的行
14.7.9使用列表框激活工作表
14.7.10通过文本框来筛选列表框
14.8在用户窗体中使用多页控件
14.9使用外部控件
14.10使标签动画化
第15章 高级用户窗体技术
15.1非模态对话框
15.2显示进度条
15.2.1创建独立的进度条
15.2.2集成到用户窗体中的进度条
15.2.3创建非图形化进度条
15.3创建向导
15.3.1为向导设置多页控件
15.3.2在向导用户窗体中添加按钮
15.3.3编写向导按钮的程序
15.3.4编写向导中的相关代码
15.3.5使用向导执行任务
15.4模仿MsgBox函数
15.4.1模仿MsgBox函数:MyMsgBox函数的代码
15.4.2 MyMsgBox函数的工作原理
15.4.3使用MyMsgBox 函数
15.5带有可移动控件的用户窗体
15.6没有标题栏的用户窗体
15.7使用用户窗体模拟工具栏
15.8使用用户窗体来模仿任务面板
15.9可调整大小的用户窗体
15.10用一个事件处理程序处理多个用户窗体控件
15.11在用户窗体中选择颜色
15.12在用户窗体中显示图表
15.12.1将图表保存为GIF文件
15.12.2更改图像控件的Picture属性
15.13使用户窗体半透明
15.14用户窗体上的数字推盘
15.15 用户窗体上的电动扑克
第Ⅳ部分 开发Excel应用程序
第16章 创建和使用加载项
16.1什么是加载项
16.1.1加载项与标准工作簿的比较
16.1.2创建加载项的原因
16.2理解Excel的加载项管理器
16.3创建加载项
16.4加载项示例
16.4.1为加载项示例添加描述信息
16.4.2创建加载项
16.4.3安装加载项
16.4.4测试加载项
16.4.5发布加载项
16.4.6修改加载项
16.5比较XLAM和XLSM文件
16.5.1 XLAM文件中的VBA集合成员
16.5.2 XLSM和XLAM文件的可见性
16.5.3 XLSM和XLAM文件的工作表和图表工作表
16.5.4访问加载项中的VBA过程
16.6用VBA操作加载项
16.6.1向AddIns集合中添加项
16.6.2从AddIns集合中删除项
16.6.3 AddIn对象属性
16.6.4作为工作簿访问加载项
16.6.5 AddIn对象事件
16.7优化加载项的性能
16.8加载项的特殊问题
16.8.1确保加载项已经安装
16.8.2从加载项中引用其他文件
16.8.3为加载项检测适用的Excel版本
第17章 使用功能区
17.1功能区基础
17.2自定义功能区
17.2.1向功能区中添加按钮
17.2.2向快速访问工具栏中添加按钮
17.2.3自定义功能区的局限性
17.3创建自定义的功能区
17.3.1将按钮添加到现有的选项卡中
17.3.2向已有的选项卡中添加复选框
17.3.3功能区控件演示
17.3.4 dynamicMenu控件示例
17.3.5关于自定义功能区的其他内容
17.4 VBA和功能区
17.4.1访问功能区控件
17.4.2使用功能区
17.4.3激活选项卡
17.5创建老式工具栏
17.5.1 Excel 2007及后续版本中老式工具栏的局限性
17.5.2创建工具栏的代码
第18章 使用快捷菜单
18.1命令栏简介
18.1.1命令栏的类型
18.1.2列出快捷菜单
18.1.3引用命令栏
18.1.4引用命令栏中的控件
18.1.5命令栏控件的属性
18.1.6显示所有的快捷菜单项
18.2使用VBA自定义快捷菜单
18.2.1快捷菜单和单文档界面
18.2.2重置快捷菜单
18.2.3禁用快捷菜单
18.2.4禁用快捷菜单项
18.2.5向“单元格”快捷菜单中添加一个新项
18.2.6向快捷菜单添加一个子菜单
18.2.7将快捷菜单限制到单个工作簿
18.3快捷菜单与事件
18.3.1自动添加和删除菜单
18.3.2禁用或隐藏快捷菜单项
18.3.3创建一个上下文相关的快捷菜单
第19章 为应用程序提供帮助
19.1 Excel应用程序的“帮助”
19.2使用Excel组件的帮助系统
19.2.1为帮助系统使用单元格批注
19.2.2为帮助系统使用文本框
19.2.3使用工作表来显示帮助文本
19.2.4在用户窗体中显示帮助信息
19.3在Web浏览器中显示“帮助”
19.3.1使用HTML文件
19.3.2使用一个MHTML文件
19.4使用HTML帮助系统
19.4.1使用Help方法来显示HTML帮助信息
19.4.2将“帮助”文件与应用程序相关联
19.4.3将一个帮助主题与一个VBA函数相关联
第20章 理解类模块
20.1什么是类模块
20.1.1内置的类模块
20.1.2自定义类模块
20.2创建NumLock类
20.2.1插入类模块
20.2.2给类模块添加VBA代码
20.2.3使用CNumLock类
20.3属性、方法和事件编程
20.3.1对象属性编程
20.3.2对象的方法编程
20.3.3类模块事件
20.4 QueryTable事件
20.5创建存储类的类
20.5.1创建CSalesRep和CSalesReps类
20.5.2创建CInvoice和CInvoices类
20.5.3用对象填充父类
20.5.4计算佣金
第21章 兼容性问题
21.1什么是兼容性
21.2兼容性问题的类型
21.3避免使用新功能
21.4在Mac机器上是否可用
21.5处理64位Excel
21.6创建一个国际化应用程序
21.6.1多语言应用程序
21.6.2 VBA语言的考虑
21.6.3使用本地属性
21.6.4系统设置识别
21.6.5日期和时间设置
第Ⅴ部分 附录
附录A VBA语句和函数引用