目录 致谢I 作者简介 III 第1章 绪论 1 1.1 关于本书 1 1.2 Excel开发人员 2 1.3 Excel——应用程序的开发平台 3 1.3.1 用作数据输入和输出表示层的工作表 4 1.3.2 用作简单数据存储的工作表 4 1.3.3 VBA:Excel的编程语言 4 1.3.4 用作声明式编程语言的工作表 5 1.3.5 Excel对象模型 6 1.4 本书结构 6 1.5 本书范例 7 1.6 支持的软件版本 7 1.7 关于字体风格 8 1.8 关于配套光盘 8 1.9 帮助与支持 9 1.10 读者反馈 9 第2章 应用程序的结构 11 2.1 基本概念 11 2.1.1 无编码的应用程序 12 2.1.2 自动化工作簿 13 2.1.3 函数和通用加载宏 14 2.1.4 特定程序中的加载宏 15 2.1.5 独立式应用程序 17 2.1.6 可用的技术 19 2.2 本章小结 20 第3章 Excel与VBA开发的最佳实践 21 3.1 命名规则 21 3.1.1 命名规则及其重要性 21 3.1.2 一个命名规则的样本 22 3.1.3 命名规则示例 25 3.1.4 过程 27 3.1.5 模块. 类和用户窗体 27 3.1.6 工作表和图表 28 3.1.7 Visual Basic工程 29 3.1.8 Excel用户接口的命名规则 29 3.1.9 不必使用命名规则的特殊情况 30 3.2 关于程序结构与组织的最佳实践 31 3.2.1 应用程序的结构 31 3.2.2 过程化应用程序的组织 33 3.3 关于应用程序开发的最佳实践 34 3.3.1 代码中的注释 34 3.3.2 代码的可读性 37 3.3.3 VBA编程实践 39 3.3.4 控件的更新 48 3.4 本章小结 49 第4章 工作表的设计 51 4.1 工作表用户接口设计的原则 51 4.2 程序行和程序列:用户接口设计的基本技术 52 4.3 预定义名称 53 4.3.1 命名常量 53 4.3.2 命名区域 54 4.3.3 命名公式 56 4.3.4 预定义名称的作用范围 58 4.4 样式 58 4.4.1 样式的优点 58 4.4.2 创建和使用样式 59 4.4.3 修改样式 61 4.4.4 在工具栏中添加样式下拉框 62 4.5 用户接口中的画图技术 62 4.5.1 使用边框创建特殊效果 62 4.5.2 创建具有良好格式的表格 63 4.5.3 显示帮助文本的单元格批注 65 4.5.4 使用图形 66 4.6 数据检验 67 4.6.1 数据的唯一性检验 67 4.6.2 级联列表 68 4.7 条件格式 70 4.7.1 创建动态表 70 4.7.2 警示错误 73 4.8 在工作表中使用控件 75 4.8.1 窗体控件的优点 76 4.8.2 Active控件的优点 77 4.9 实例分析 77 4.9.1 隐藏行和列 78 4.9.2 预定义名称 79 4.9.3 样式 79 4.9.4 用户接口的绘图技术 80 4.9.5 数据检验 80 4.9.6 条件格式 81 4.10 本章小结 第5章 函数. 通用加载宏和特定应用的加载宏 83 5.1 应用程序的四个阶段 5.1.1 开发和维护 5.1.2 启动 84 5.1.3 运行 85 5.1.4 关闭 85 5.2 函数库加载宏 85 5.2.1 用户自定义函数(UDF)示例 86 5.2.2 UDF的命名规则 87 5.2.3 让UDF看起来更像内部函数 87 5.2.4 为函数库加载宏创建友好的名称和描述信息 89 5.2.5 关于UDF的一些重要细节 90 5.2.6 VBA UDF问题 91 5.3 通用加载宏 91 5.4 特定应用的加载宏 92 5.4.1 使用表驱动的方法管理工作表用户接口(UI) 92 5.4.2 使用VBA动态修改用户接口工作表 96 5.5 实例分析 96 5.5.1 特性 96 5.5.2 打开和初始化应用程序 97 5.5.3 构建工具栏 98 5.5.4 打开和初始化Time-Entry工作簿 99 5.5.5 将Time-Entry工作簿副本保存到设定好的数据合并区 101 5.5.6 允许用户向Time-Entry工作表添加更多的数据输入行 103 5.5.7 允许用户清除数据输入区中的数据,107以便重新使用Timesheet 104 5.5.8 允许用户关闭PETRAS应用程序 104 5.5.9 添加自定义属性以便合并应用程序能找到所有的Time-Entry工作簿进程 105 5.5.10 应用程序的组织 106 5.6 本章小结 107 第6章 独立式应用程序 109 6.1 独立式应用程序的结构 109 6.1.1 启动与关闭 110 6.1.2 自定义用户界面 117 6.1.3 处理与分析 121 6.1.4 显示结果 121 6.2 实例分析 121 6.2.1 PETRAS Timesheet 121 6.2.2 PETRAS报表 121 6.3 本章小结 127 第7章 使用类模块创建对象 129 7.1 创建对象 130 7.1.1 类模块的结构 132 7.2 创建集合 133 7.2.1 创建集合对象 134 7.2.2 用地址表示类集合的不足 137 7.3 捕获事件 138 7.4 引发事件 140 7.4.1 家庭关系问题 142 7.4.2 创建触发类 144 7.5 实例分析 146 7.5.1 PETRAS Timesheet 146 7.5.2 PETRAS报表 150 7.6 本章小结 151
|