《Excel 2007 VBA开发技术大全 》

1部分  基础入门篇

1  Excel VBA起步

 

1.1  使用宏录制器

      1.1.1  录制宏

      1.1.2  确保开发工具选项卡可见

      1.1.3  成功录制宏的因素

      1.1.4  录制模式:相对模式或绝对模式

      1.1.5  录制选项

      1.1.6  完成录制

      1.1.7  编辑代码

      1.1.8  录制宏的限制

      1.1.9  安全性问题

1.2  运行宏

      1.2.1  打开对话框的方式

      1.2.2  快捷键方式

      1.2.3  表单控件方式

      1.2.4  ActiveX控件方式

      1.2.5  快速访问工具栏方式

      1.2.6  VBE窗口方式

1.3  VBA集成开发环境

      1.3.1  访问VBA集成开发环境

      1.3.2  IDF中的各组件

      1.3.3 “工程资源管理器窗口

      1.3.4 “属性窗口

      1.3.5 “对象浏览器窗口

      1.3.6 “代码窗口

1.4  定制集成开发环境

      1.4.1 “编辑器选项卡

      1.4.2 “编辑器格式选项卡

      1.4.3 “通用选项卡

      1.4.4 “可连接的选项卡

      1.4.5  定制工具栏和菜单栏

1.5  使用系统帮助

1.6  认识信任中心

1.7  小结

2  Excel的对象模型及其主要对象

 

2.1  Excel 2007对象模型

      2.1.1  Objects对象及对象层次结构

      2.1.2  集合

      2.1.3  属性

      2.1.4  方法

      2.1.5  事件

      2.1.6  获取帮助

      2.1.7  对象浏览器

      2.1.8  使用立即窗口来调试代码

2.2  Application对象

      2.2.1  全局对象

      2.2.2  Active属性

      2.2.3  DisplayAlerts属性

      2.2.4  ScreenUpdating属性

      2.2.5  Evaluation方法

      2.2.6  StatusBar属性

      2.2.7  SendKeys方法

      2.2.8  OnTime方法

2.3  Workbooks工作簿集合对象

      2.3.1  创建一个新的工作簿

      2.3.2  打开工作簿

      2.3.3  保存和关闭所有工作簿

      2.3.4  与工作簿相关的3

      1.1.4  自定义函数

      2.3.5  使用自定义函数完成的一些工作簿操作

2.4  Worksheets工作表集合对象

2.5  Range对象概述

2.6  Range对象的常用属性

      2.6.1  Value属性

      2.6.2  Text属性

      2.6.3  CountAreas属性

      2.6.4  Address属性

      2.6.5  HasFormula属性

      2.6.6  Font属性

      2.6.7  Interior属性

      2.6.8  Formula属性

      2.6.9  NumberFormat属性

2.7  Range对象的常用方法

      2.7.1  ActivateSelect方法

      2.7.2  CopyPaste方法

      2.7.3  ClearDelete方法

2.8  返回Range对象的方法

      2.8.1  Range属性

      2.8.2  Cells属性

      2.8.3  Offset属性

      2.8.4  ColumnsRows属性

      2.8.5  Resize属性

      2.8.6  CurrentRegion属性

      2.8.7  End属性

      2.8.8  UnionInterset方法

      2.8.9  SpecialCells方法

2.9  操作Range对象的示例

      2.9.1  快速定位并填充区域中满足条件的单元格

      2.9.2  快速定位并删除满足条件的所有数据行

      2.9.3  根据选择区域执行相应的操作

2.10  使用名称

      2.10.1  名称及名称管理器对话框

      2.10.2  Excel中创建并使用名称

      2.10.3  Names集合和Name对象

      2.10.4  添加指向区域的名称

      2.10.5  在名称中保存数据

      2.10.6  隐藏名称

      2.10.7  处理Excel内置名称

      2.10.8  改变名称指向的区域

      2.10.9  查找名称

2.11  小结

3  VBA语言基础

 

3.1  程序设计基本概念

      3.1.1  标识符

      3.1.2  运算符与表达式

      3.1.3  VBA代码规范

      3.1.4  提高VBA代码运行效率

      3.1.5  各种有益的VBA编码习惯

3.2  数据类型

      3.2.1  基本数据类型

      3.2.2  自定义数据类型

      3.2.3  数据类型间的转换

3.3  常量与变量

      3.3.1  常量

      3.3.2  变量

      3.3.3  Option Explicit语句

      3.3.4  常量和变量的关系

3.4  VBA中两种与用户交互的简单方式

      3.4.1  使用MsgBox函数输出

      3.4.2  使用InputBox函数获取简单的输入

      3.4.3  InputBox方法

3.5  语句

      3.5.1  赋值语句

      3.5.2  注释语句

      3.5.3  结束语句

      3.5.4  With语句

3.6  小结

2部分  巩固提高篇

4  数组

 

4.1  数组的基本概念

4.2  声明数组

4.3  静态数组

4.4  动态数组

4.5  为数组元素赋值

4.6  数组与Excel对象的交互

      4.6.1  二维数组与Excel区域

      4.6.2  数组与Excel区域Range对象的交互

      4.6.3  数组与Excel名称Name对象的交互

      4.6.4  使用监视窗口查看数组的值

4.7  常用的数组内置函数

      4.7.1  LboundUbound函数

      4.7.2  ArrayIsArray函数

      4.7.3  Erase函数

      4.7.4  SplitJoin函数

      4.7.5  Filter函数

      4.7.6  Index函数

      4.7.7  Transpose函数

4.8  操作数组的自定义函数

      4.8.1  巩固数组基础知识

      4.8.2  自定义数组函数

4.9  小结

5  用户窗体及常用内部控件

 

5.1  显示用户窗体

5.2  创建用户窗体

5.3  直接访问窗体中的控件

5.4  阻止关闭按钮

5.5  维护数据列表

5.6  非模态用户窗体

      5.6.1  非模态用户窗体特点

      5.6.2  进度指示条

5.7  可变用户窗体名

5.8  控件概述

5.9  窗体控件和ActiveX控件

5.10  ActiveX控件

      5.10.1  滚动条控件

      5.10.2  微调按钮控件

      5.10.3  复选框控件

      5.10.4  选项按钮控件

5.11  窗体控件

5.12  动态ActiveX控件

5.13  图表中的控件

5.14  小结

6  理解Excel的事件

 

6.1  事件过程介绍

      6.1.1  事件概述

      6.1.2  与事件过程相关的概念

      6.1.3  一个对象的可用事件

      6.1.4  自动生成事件外壳代码

      6.1.5  事件代码位置

      6.1.6  事件层次及事件引发顺序

      6.1.7  嵌入式图表对象和应用程序对象

      6.1.8  同一对象的不同事件的引发顺序

      6.1.9  避免同一事件在不同层次对象中的继续引发

      6.1.10  Excel对象的事件

6.2  工作表事件

      6.2.1  可用的工作表事件

      6.2.2  启用事件

      6.2.3  工作表计算

6.3  图表事件

      6.3.1  可用的图表事件

      6.3.2  利用双击提供简单的格式化图表功能

6.4  工作簿事件

      6.4.1  可用的工作簿事件

      6.4.2  保存修改

      6.4.3  页眉和页脚

6.5  小结

7  图表

 

7.1  图表概述

7.2  创建嵌入式图表

      7.2.1  宏录制器生成的代码

      7.2.2  整理录制宏代码

7.3  创建位于图表工作表中的图表

      7.3.1  使用宏录制器生成的代码

      7.3.2  整理录制宏代码

7.4  编辑图表中的系列

7.5  创建数组系列图表

7.6  使用数组赋值图表的数据系列

7.7  操作图表系列公式SERIES

      7.7.1  图表系列SERIES公式的语法及参数

      7.7.2  获取图表系列公式中的各部分值

7.8  添加图表标签

7.9  小结

8  数据透视表

 

8.1  创建数据透视表

      8.1.1  准备数据源

      8.1.2  创建数据透视表

      8.1.3  查看录制的代码

      8.1.4  整理录制代码

8.2  数据透视表缓存集合PivotCaches

8.3  数据透视表集合PivotTables

8.4  数据透视表字段集合PivotFields

      8.4.1  在已有数据透视表中添加字段

      8.4.2  改变数据透视表字段布局

      8.4.3  改变数据透视表字段布局

8.5  处理计算字段CalculatedField

8.6  数据字段的所有数据项集合PivotItems

      8.6.1  分组

      8.6.2  Visible属性

      8.6.3  CalculatedItems集合

8.7  生成数据透视图PivotChart

8.8  使用外部数据源

8.9  小结

9  利用VBA管理数据列表

 

9.1  结构化数据及数据列表

9.2  排序区域

9.3  创建一个Excel

9.4  排序Excel

9.5  自动筛选

      9.5.1  AutoFilter对象

      9.5.2  Filter对象

      9.5.3  使用日期自定义筛选

9.6  使用自动筛选的综合实例

      9.6.1  准备工作簿及添加

      9.6.1  ActiveX控件

      9.6.2  填充组合框

      9.6.3  添加组合框的Click事件过程及其调用的筛选过程

      9.6.4  复制筛选数据行到新建工作表中

      9.6.5  处理可见行

      9.6.6  按准确日期筛选

9.7  使用高级筛选在不同工作簿之间筛选并传递数据

      9.7.1  定义名称

      9.7.2  组织判断条件Criteria区域

      9.7.3  插入表单控件并编写VBA过程

9.8  记录单

9.9  小结

10  错误处理与程序调试

 

10.1  错误类型

      10.1.1  语法错误

      10.1.2  运行时错误

      10.1.3  逻辑错误

      10.1.4  3种错误类型的比较

10.2  错误对象Err

10.3  编写完美的无错程序

      10.3.1  分析功能并初次完成代码

      10.3.2  代码并不完美

      10.3.3  代码仍然不完美

      10.3.4  代码还是不完美

      10.3.5  放弃编写完美的代码

      10.3.6  更换运行时错误的处理方式

10.4  运行时错误处理

      10.4.1  未经处理和经过处理的错误

      10.4.2  错误处理的一般步骤

      10.4.3  错误处理机制的深层运用

      10.4.4  复杂错误处理机制之一:函数返回型

      10.4.5  复杂错误处理机制之二:错误重抛型

10.5  编写处理错误的自定义函数

      10.5.1  判断工作簿是否打开的自定义函数

      10.5.2  判断工作表是否存在的自定义函数

      10.5.3  判断给定名称是否存在

      10.5.4  判断给定变量是否是布尔型变量

10.6  程序调试概述

      10.6.1  VBA提供的调试工具

      10.6.2 “调试工具栏

      10.6.3  处理不易解决错误的通用步骤

      10.6.4  错误捕获设置

10.7  程序的3种模式及其切换

      10.7.1  设计模式

      10.7.2  运行模式

      10.7.3  中断模式

10.8  跟踪代码

      10.8.1  两种常用的设置断点方法

      10.8.2  跟踪代码的方法及其选择

10.9  使用调试窗口

      10.9.1 “本地窗口

      10.9.2 “立即窗口

      10.9.3 “监视窗口

      10.9.4 “调用堆栈对话框

10.10  调试常用快捷键

10.11  使用书签快速切换

10.12  小结

11  功能区

 

11.1  功能区的基础界面

      11.1.1  功能区中的选项卡

      11.1.2  功能区的特点

      11.1.3  快速访问工具栏

11.2  使用VBA访问功能区

      11.2.1  Excel 2007中的CommandBar对象

      11.2.2  访问一个功能区控件

      11.2.3  CommandBars对象处理功能区的所有相关方法

      11.2.4  激活选项卡

      11.2.5  VBA和功能区

11.3  使用RibbonX代码定制功能区

      11.3.1  定制功能区的特点

      11.3.2  一个简单的RibbonX示例

      11.3.3  示例剖析及知识总结

      11.3.4  功能区XML文件参考

      11.3.5  另一个RibbonX示例

      11.3.6  新增一个选项卡

      11.3.7  定制功能区总小结

11.4  小结

3部分  高级编程篇

12  命令栏及快捷菜单

 

12.1  工具栏、菜单栏和快捷菜单

12.2  Excel内置工具栏

12.3  所有级别的控件

12.4  创建新菜单

12.5  传递参数

12.6  删除菜单

12.7  创建工具栏

12.8  快捷菜单

12.9  显示弹出式命令栏

12.10  小结

13  使用ADO的数据访问

 

13.1  结构化查询语言

      13.1.1  SELECT语句

      13.1.2  INSERT语句

      13.1.3  UPDATE语句

      13.1.4  DELETE语句

13.2  ADO概述

      13.2.1  数据库连接对象Connection

      13.2.2  记录集对象Recordset

      13.2.3  字段对象Field

      13.2.4  命令对象Command

      13.2.5  二进制数据流或文本流对象Stream

      13.2.6  错误集合和错误对象Errors & Error

      13.2.7  ADO操作数据库的一般过程

13.3  Excel应用程序中使用ADO

13.4  使用ADO访问Access中数据库

      13.4.1  连接到Microsoft Access数据源

      13.4.2  使用纯文本查询从Microsoft Access中获取数据

      13.4.3  使用存储查询从Microsoft Access中获取数据

      13.4.4  插入数据

      13.4.5  更新数据

      13.4.6  删除数据

      13.4.7  Microsoft Access中使用普通无格式文本SQL插入、

      10.3.1  更新和删除记录

13.5  使用ADO访问Excel中数据

      13.5.1  查询Excel工作簿

      13.5.2  Excel工作簿中插入和更新记录

13.6  使用ADO查询文本文件

13.7  小结

14  文件编程

 

14.1  文件的基本概念

      14.1.1  文件结构

      14.1.2  文件分类

      14.1.3  文件的访问类型

14.2  文件处理的一般步骤

14.3  文件处理中的简单函数和语句

14.4  顺序文件

      14.4.1  打开顺序文件

      14.4.2  关闭顺序文件

      14.4.3  顺序文件的写操作

      14.4.4  顺序文件的读操作

      14.4.5  顺序文件的读操作示例

      14.4.6  使用灵活的分隔符

      14.4.7  生成HTML格式的文件

      14.4.8  生成XML格式的文件

14.5  随机文件

      14.5.1  打开和关闭

      14.5.2  写操作

      14.5.3  读操作

      14.5.4  修改、追加和删除记录

14.6  二进制文件

      14.6.1  打开和关闭

      14.6.2  读写操作

      14.6.3  3种不同类型文件的典型读写操作语句

14.7  操作文件和文件夹

      14.7.1  VBA中有关目录和文件的操作语句及函数

      14.7.2  综合实例

14.8  文件系统对象FSO

      14.8.1  FSO对象模型及

      14.6.3  FileSyetemObject对象

      14.8.2  Driver对象及获取驱动器信息

      14.8.3  folder对象及处理文件夹

      14.8.4  file对象与处理文件

14.9  小结

15  ExcelInternet

 

15.1  使用VBA创建超链接

      15.1.1  使用宏录制器记录插入超链接过程

      15.1.2  获取关键对象及方法

      15.1.3  编写使用插入超链接的代码

      15.1.4  使用FollowHyperlink方法

15.2  Internet中的工作簿

15.3  使用VBA创建和发布网页

      15.3.1  PublishObjectsPublishObject对象

15.4  基于Internet的查询

      15.4.1  在工作簿中打开Web网页

      15.4.2  使用Web查询

      15.4.3  解析Web网页以获取特定信息

15.5  小结

16  ExcelXML

 

16.1  XMLExcel的明日之星

16.2  XML基础

      16.2.1  XML声明

      16.2.2  处理指令

      16.2.3  注释

      16.2.4  元素和根元素

      16.2.5  属性

      16.2.6  名称空间

      16.2.7  查看和编辑一个XML文档

      16.2.8  直接处理XML数据

      16.2.9  创建并处理自定义XML映射

16.3  使用VBA自动化处理XML

      16.3.1  打开一个XML文档直接映射到列表

16.4  使用DOMXPath操作XML文件

      16.4.1  使用DOM对象加载XML文件

      16.4.2  协同使用ADODOMExcel数据转换为XML

      16.4.3  使用DOMXPath操作XML文件

16.5  小结

17  类模块

 

17.1  类和类模块

      17.1.1  类和类模块

17.2  类模块的属性

17.3  属性剖析

      17.3.1  私有成员变量

      17.3.2  Property Let过程

      17.3.3  Property Get过程

      17.3.4  Property作用域

      17.3.5  实现用户定义类型属性

      17.3.6  实现只读属性

      17.3.7  在客户应用程序中使用属性

      17.3.8  Collection类中使用批量赋值函数

      17.3.9  在集合类中提供自己的Exists属性

17.4  类模块方法

      17.4.1  自定义方法的作用域

      17.4.2  为自定义方法传递参数

      17.4.3  实现自定义类方法

17.5  类模块事件

      17.5.1  Initialize事件

      17.5.2  Terminate事件

      17.5.3  实现自定义事件

17.6  类模块的其他知识点

      17.6.1  类模块的Instancing属性

      17.6.2  允许用户使用For Each……Next语句

      17.6.3  使用枚举常数

      17.6.4  错误处理

      17.6.5  使用Dictionary对象

17.7  创建自定义对象

17.8  改进自定义对象的属性过程

17.9  为自定义对象创建集合

      17.9.1  在标准模块中使用Collection集合对象

      17.9.2  在类模块中使用Collection集合对象

17.10  封装

17.11  捕获应用程序事件

17.12  嵌入式图表事件

17.13  捕获用户窗体控件事件

17.14  在工程间引用类

17.15  小结

18  理解并调用Windows API

 

18.1  API基础

      18.1.1  API的概念

      18.1.2  DLL的含义

      18.1.3  API函数

      18.1.4  API数据类型

      18.1.5  HandlehwndhDC

18.2  使用API的基本步骤

      18.2.1  声明API函数

      18.2.2  调用API函数

18.3  剖析API调用

18.4  返回API中的错误描述文本

      18.4.1  编写API错误返回函数

      18.4.2  调用错误信息返回函数

18.5  API示例

      18.5.1  冻结用户窗体

      18.5.2  将文件删除到回收站中

      18.5.3  获取系统信息

      18.5.4  捕获ShiftCtrlAlt键的状态

      18.5.5  改变用户窗体样式

18.6  小结

19  加载项

 

19.1  加载项概述

19.2  Excel加载项

      19.2.1  概述

      19.2.2  保护工程以隐藏代码

      19.2.3  创建加载项

      19.2.4  关闭加载项

      19.2.5  代码变化

      19.2.6  保存更改

      19.2.7  安装一个加载项

      19.2.8  可用加载宏列表中移除一个加载项

19.3  自动化加载项

      19.3.1  创建一个简单的单向通信加载项GetSequence

      19.3.2  Excel中注册自动化加载项

      19.3.3  使用自动化加载项

      19.3.4  创建一个复杂的双向通信自动化加载项

19.4  小结

20  控制其他Office组件

 

20.1  建立链接

      20.1.1  晚期绑定

      20.1.2  早期绑定

20.2  Word中打开文档

20.3  访问当前的活动Word文档

20.4  创建一个新的Word文档

20.5  Excel中使用ADO技术操作Access数据

20.6  综合使用AccessExcelOutlook

20.7  小结

21  操作VBE

 

21.1  开始前的准备

21.2  VBE及其对象模型

      21.2.1  VBE对象模型

      21.2.2  VBE模型中的对象

      21.2.3  ExcelVBE对象模型之间的联系

      21.2.4  引用VBE中的对象

21.3  处理VBProject中的各个对象

      21.3.1  测试指定组件的存在

      21.3.2  在一个工程中添加模块

      21.3.3  在一个模块中添加过程

      21.3.4  创建一个事件过程

      21.3.5  删除工程中的模块

      21.3.6  删除模块中的过程

      21.3.7  删除工程中的所有VBA代码

      21.3.8  列出工程中所有组件的名称及类型

      21.3.9  列出模块中的所有过程

      21.3.10  返回过程的声明部分及其他信息

      21.3.11  计算一个Component中代码总行数

      21.3.12  计算一个工程中的总代码行数

      21.3.13  将一个VBComponent导出为文本文件

      21.3.14  在工程间复制模块

      21.3.15  在模块中搜索文本

      21.3.16  新建一个工作簿并在其中写入代码

      21.3.17  在操作VBE时防止屏幕闪动

21.4  操作窗体组件

      21.4.1  用代码创建指定数目和大小的按钮

      21.4.2  窗体控件的Designer对象

21.5  VBE编辑器中添加新的菜单项

      21.5.1  VBE的命令栏对象

      21.5.2  VBE中添加菜单

      21.5.3  为当前过程添加行号和错误处理

21.6  处理其他VBE对象

      21.6.1  处理引用

      21.6.2  VBE窗口

21.7  小结

22  创建国际通用程序

 

22.1  Windows区域设置和Office 2007用户语言

      22.1.1  4个国家的本地化配置

      22.1.2  辨别用户区域设置和Windows语言

22.2  从国际化的角度来看VBA

22.1  的转换函数

      22.2.1  隐式转换

      22.2.2  日期字符串

      22.2.3  IsNumericIsDate函数

      22.2.4  CStr函数

      22.2.5  CDblCSngCLng

      22.2.5  CIntCByteCCur

      22.2.5  CDec函数

      22.2.6  CDateDateValue函数

      22.2.7  CBool函数

      22.2.8  Format函数

      22.2.9  FormatCurrencyFormatDate TimeFormatNumber

      22.2.5  FormatPercent函数

      22.2.10  Str函数

      22.2.11  sNumToUS函数

      22.2.12  Val函数

      22.2.13  Application.Evaluate

22.3  Excel交互

      22.3.1  Excel发送数据

      22.3.2  读取Excel中的数据

      22.3.3  Excel协同工作的原则

22.4  与用户交流

      22.4.1  纸张大小

      22.4.2  显示数据

      22.4.3  理解数据

      22.4.4  XXXLocal属性

      22.4.5  与用户合作的原则

22.5  Excel 2007的国际化选项

22.6  不遵循普遍规则的属性、

22.6  方法及函数

      22.6.1  OpenText方法

      22.6.2  SaveAs方法

      22.6.3  ShowDataForm子过程

      22.6.4  粘贴文本

      22.6.5  数据透视表计算字段和

      22.2.5  项目、条件格式和数据

      22.2.5  有效性验证公式

      22.6.6  Web查询

      22.6.7  =TEXT()工作表函数

22.7  Range对象的ValueFormula FormulaArray属性

      22.7.1  Range.AutoFilter方法

      22.7.2  Range.AdvanceFilter方法

22.8  ApplicationEvaluateConvertFormula

22.8  ExecuteExcel4Macro函数

22.9  Office 2007的语言设置

      22.9.1  文本来自何处

      22.9.2  识别Office用户界面语言设置

22.10  创建一个多语言应用程序

      22.10.1  建议的途径

      22.10.2  存储字符串资源

22.11  在多语言环境中工作

      22.11.1  保留足够的空间

      22.11.2  使用Excel对象

      22.11.3  避免使用SendKeys方法

      22.11.4  使用功能区

      22.11.5  开发多语言应用程序的原则

22.12  有用的自定义函数

      22.12.1  bWinToNum函数

      22.12.2  bWinToDate函数

      22.12.3  sFormatDate函数

      22.12.4  ReplaceHolders函数

22.13  小结

4部分  综合系统篇

23  VBA综合实例

 

23.1  学生成绩管理系统

      23.1.1  系统说明

      23.1.2  设定工作表结构

      23.1.3  设计程序登录窗体

      23.1.4  设置用户权限管理窗体

      23.1.5  编写窗体及日志记录代码

      23.1.6  成绩查询

      23.1.7  定制功能区按钮

      23.1.8  使用程序

23.2  工作表管理综合插件系统

      23.2.1  系统说明

      23.2.2  设置主框架

      23.2.3  批量建立工作表

      23.2.4  批量复制工作表

      23.2.5  以输入字符为条件重命名工作表

      23.2.6  以选区字符为条件重命名工作表

      23.2.7  排序工作表

      23.2.8  建立工作表目录

      23.2.9  批量隐藏/显示工作表

      23.2.10  设计工具栏与快捷键

      23.2.11  使用插件

附录代码窗口中的常用快捷键及其功能

附录错误列表