Excel专业开发

出版社:电子工业出版社
出版日期:2013-1-1
ISBN:9787121183133
作者:布伦 (Stephen Bullen),Rob Bovey,Dennis Wallentin,John Green
页数:792页

作者简介

本书基于Excel 2003及之后的版本和VSTO.NET 2008开发平台介绍了Excel专业应用程序开发的各种方法和技术,其内容相对第一版有较大的调整和更新。主要包括Excel各类应用程序的结构和开发方法;Excel应用程序的工作表、用户接口、工具栏、用户窗体和Office 2007功能区用户界面等的开发;自定义类与对象的程序设计;VBA程序的设计、错误处理、调试及性能优化;图表编程技术、数据处理技术、数据库开发技术,以及在Excel应用程序中控制其他程序的技术;Excel与C、VB 6、VB.NET 2008的混合编程、托管外接程序开发及Windows API函数的调用方法;Excel与XML、Web服务程序的通信,以及Excel专业应用程序的安全、打包、发布及帮助文件的制作等内容。
本书对Excel应用程序开发各种技术的介绍全面而深入浅出,通俗易懂,是Excel中高级用户和开发人员的首选书籍,也是想了解与提高Excel应用程序设计的技术人员的最佳参考书。

书籍目录

第1章  绪论
1
1.1 关于本书
1
1.2 本书适合的读者群
1
1.3 Excel开发人员分类
2
1.4 Excel——应用程序的开发平台
3
1.4.1 用作数据输入和输出表示层的工作表
3
1.4.2 用作简单数据存储的工作表
4
1.4.3 VBA代码与用户窗体
4
1.4.4 用作声明式编程语言的工作表
4
1.4.5 Excel对象模型
5
1.5 本书结构
5
1.6 本书案例
6
1.7 支持的软件版本
6
1.8 关于字体风格
7
1.9 关于配套资源
7
1.10 帮助与支持
8
1.11 专业Excel开发网站
8
1.12 读者反馈
9
第2章 应用程序的结构
10
2.1 基本概念
10
2.1.1 无编码的应用程序
10
2.1.2 自动化工作簿
11
2.1.3 通用加载宏
12
2.1.4 特定程序中的加载宏
14
2.1.5 独立式应用程序
15
2.1.6 可用的技术
17
2.2 本章小结
17
第3章 Excel与VBA开发的最佳惯例
19
3.1 命名规则
19
3.1.1 一个命名规则惯例
20
3.1.2 命名规则惯例
23
3.1.3 过程
24
3.1.4 模块、类和用户窗体
25
3.1.5 工作表和图表
25
3.1.6 Visual Basic工程
26
3.1.7 Excel用户接口的命名规则
26
3.1.8 不必使用命名规则的特殊情况
27
3.2 关于程序结构与组织的最佳惯例
28
3.2.1 应用程序的结构
28
3.2.2 过程化应用程序的组织
29
3.3 一般性应用程序开发的最佳惯例
31
3.3.1 代码注释
31
3.3.2 代码的可读性
34
3.3.3 通用的VBA编程惯例
35
3.3.4 修改控制
44
3.4 本章小结
45
第4章 工作表设计
46
4.1 工作表用户接口设计的原则
46
4.2 程序行和程序列:用户接口设计的基本技术
47
4.3 预定义名称
47
4.3.1 命名常量
48
4.3.2 命名区域
48
4.3.3 命名公式
50
4.3.4 预定义名称的作用范围
51
4.4 样式
52
4.4.1 创建和使用样式
52
4.4.2 修改样式
54
4.4.3 在工具栏中添加样式下拉框
54
4.5 用户接口中的画图技术
55
4.5.1 使用边框创建特殊效果
55
4.5.2 创建具有良好格式的表格
55
4.5.3 显示帮助文本的单元格批注
56
4.5.4 使用图形
57
4.6 数据检验
58
4.6.1 数据的唯一性检验
58
4.6.2 级联列表
59
4.7 条件格式
60
4.7.1 创建动态表
60
4.7.2 警示错误
62
4.8 在工作表中使用控件
64
4.8.1 窗体控件的优点
65
4.8.2 Active控件的优点
65
4.9 实例分析
65
4.9.1 隐藏行和列
66
4.9.2 预定义名称
67
4.9.3 样式
67
4.9.4 用户接口的绘图技术
67
4.9.5 数据检验
68
4.9.6 条件格式
68
4.10 本章小结
69
第5章 函数、通用加载宏和特定应用的加载宏
70
5.1 应用程序的四个阶段
70
5.1.1 开发与维护
70
5.1.2 启动
71
5.1.3 运行
71
5.1.4 关闭
72
5.2 函数库加载宏
72
5.2.1 用户自定义函数(UDF)示例
72
5.2.2 UDF的命名规则
73
5.2.3 让UDF看起来更像内部函数
73
5.2.4 为函数库加载宏创建友好的名称和描述信息
75
5.2.5 关于UDF的一些重要细节
76
5.2.6 VBA UDF问题
76
5.3 通用加载宏
76
5.4 特定应用的加载宏
77
5.4.1 使用表驱动的方法管理工作表用户接口(UI)
77
5.4.2 使用VBA动态修改用户接口工作表
81
5.5 实例分析
81
5.5.1 功能特性
81
5.5.2 应用程序的组织
91
5.6 本章小结
91
第6章 独立式应用程序
92
6.1 独立式应用程序的结构
92
6.1.1 启动与关闭
93
6.1.2 自定义用户界面
99
6.1.3 处理与分析
103
6.1.4 显示结果
104
6.2 实例分析
104
6.2.1 PETRAS报表
104
6.3 本章小结
109
第7章 使用类模块创建对象
110
7.1 创建对象
110
7.1.1 类模块的结构
112
7.2 创建集合
113
7.2.1 创建集合对象
115
7.2.2 用地址表示类集合的不足
117
7.3 捕获事件
118
7.4 引发事件
120
7.4.1 家庭关系问题
122
7.4.2 创建触发类
124
7.5 实例分析
126
7.5.1 PETRAS时刻表
126
7.5.2 PETRAS报表
130
7.6 本章小结
131
第8章 应用程序的结构
132
8.1 命令栏设计
132
8.2 表驱动命令栏
133
8.2.1 表驱动命令栏构建器简介
133
8.2.2 命令栏定义表
134
8.2.3 小结
146
8.3 综合应用示例
146
8.3.1 在工作表菜单栏中添加带子菜单的自定义菜单
147
8.3.2 添加自定义工具条
149
8.3.3 添加自定义右击命令栏
151
8.4 从文件中导入自定义图标
152
8.4.1 创建用于图标和掩码的位图文件
153
8.4.2 将位图文件作为命令栏按钮的图标
154
8.5 使用钩子截获命令栏控件事件
155
8.5.1 为什么要使用事件钩子
155
8.5.2 事件钩子的用途
155
8.5.3 Tag属性的重要性
156
8.5.4 选择性粘贴命令栏
157
8.6 实例分析
161
8.6.1 PETRAS时刻表
161
8.6.2 PETRAS报表
163
8.6.3 应用程序的环境
163
8.6 本章小结
166
第9章 XML介绍
167
9.1 XML
167
9.1.1 XML文件示例
168
9.1.2 XSD文件示例
169
9.1.3 Excel 2003的XML特性概述
171
9.1.4 一个简单的金融模型
172
9.1.5 创建XML架构定义文件
173
9.1.6 XML映射
174
9.1.7 导出和导入XML数据
176
9.1.8 XML对象模型和事件
177
9.1.9 早期版本中的XML支持
181
9.1.10 使用命名空间
182
9.2 本章小结
183
第10章 Office 2007 Ribbon用户界面
184
10.1 RibbonX范式
184
10.2 Office 2007 Open XML文件格式介绍
185
10.2.1 Open XML文件格式的结构
185
10.3 Ribbon设计和编码的最佳惯例
187
10.3.1 支持工作流程的设计
187
10.3.2 使用加载项选项卡
188
10.3.3 在多个加载项之间共享自定义的选项卡和组
188
10.3.4 keytip属性
192
10.3.5 管理控件的自定义图标
192
10.3.6 使用全局回调处理器
193
10.3.7 无效处理
194
10.4 表驱动的Ribbon UI自定义
196
10.4.1 访问customUI XML中的部件
196
10.5 需要解决的高级问题
197
10.5.1 为独立式应用程序创建Ribbon UI
197
10.5.2 隐藏Ribbon UI
199
10.5.3 确定组合框、下拉框和编辑框控件的大小
200
10.5.4 工作表导航
200
10.5.5 使用模板
203
10.6 进阶阅读
203
10.6.1 RibbonX:自定义Office 2007 Ribbon
203
10.7 相关网站
203
10.7.1 Office开发人员网站中的XML
203
10.7.2 OpenXMLDeveloper.org
204
10.7.3 Office良好用户界面开发人员门户网站
204
10.8 本章小结
204
第11章 创建跨版本兼容的应用程序
205
11.1 单个应用程序中的命令栏和Ribbon用户界面
205
11.1.1 轻量级方法
205
11.1.2 重量级方法
208
11.1.3 提取命令栏的处理逻辑
208
11.1.4 创建Ribbon用户界面加载器
211
11.1.5 其他注意事项
216
11.2 Excel 2007开发的其他问题
216
11.2.1 无法将代码添加到无宏的Excel文件
216
11.2.2 使用文件系统
217
11.3 Windows vista的安全和文件夹结构
222
11.3.1 用户账户控制(UAC)
222
11.3.2 标准用户账户
223
11.3.3 公共配置文件
224
11.3.4 分清Windows XP和Windows Vista
224
11.4 本章小结
224
第12章 理解和使用Windows API调用
225
12.1 概述
225
12.1.1 查找文档
226
12.1.2 查找声明
226
12.1.3 查找常量的值
226
12.1.4 理解句柄
227
12.1.5 封装API调用
228
12.2 与屏幕相关的操作
229
12.2.1 读取屏幕分辨率
230
12.2.2 查看像素的尺寸
230
12.2.3 设备上下文(device context)
230
12.3 与窗口相关的操作
232
12.3.1 窗口类
232
12.3.2 获取窗口
233
12.3.3 ANSI编码与Unicode编码的比较和Alias子句
233
12.3.4 查找相关的窗口
234
12.3.5 窗口消息
236
12.3.6 更改窗口的图标
237
12.3.7 改变窗体的样式
238
12.4 与键盘相关的操作
238
12.4.1 检验Shift键,Ctrl键,Alt键,Caps Lock键,Num Lock键和Scroll Lock
键的状态
239
12.4.2 检测某个键是否被按下
240
12.5 与文件系统和网络相关的操作
242
12.5.1 查找用户ID
243
12.5.2 改变UNC路径
244
12.5.3 查找指定的文件夹
244
12.5.4 将文件删除到回收站中
246
12.5.5 浏览文件夹
247
12.6 实例分析
253
12.6.1 PETRAS 时刻表
253
12.6.2 PETRAS报表
254
12.7 本章小结
255
第13章 用户窗体设计与范例
256
13.1 基本原则
256
13.1.1 简单化
256
13.1.2 显示界面,而非业务规则
256
13.1.3 使用类,而非默认实例
259
13.1.4 提供属性和方法,而非控件
261
13.2 控件基础
263
13.2.1 命名
263
13.2.2 分层
263
13.2.3 位置
263
13.2.4 Tab次序和加速键
264
13.2.5 数据绑定
264
13.2.6 事件处理
264
13.2.7 验证
266
13.3 可视效果
269
13.3.1 用户窗体的窗口样式
269
13.3.2 使关闭按钮不可用
272
13.3.3 在用户窗体上显示图形、图表和艺术字等
272
13.3.4 锁定与禁用控件
273
13.3.5 弹出式菜单
274
13.4 用户窗体的位置和尺寸
275
13.4.1 靠近单元格
275
13.4.2 响应不同的分辨率
276
13.4.3 可调整尺寸的用户窗体
277
13.4.4 分隔栏
278
13.5 向导
280
13.5.1 向导对话框的设计规则
280
13.5.2 创建一个向导对话框
281
13.6 动态窗体
282
13.6.1 用户窗体中的控件子集
283
13.6.2 代码创建和表驱动的窗体
283
13.6.3 滚动区域
286
13.6.4 动态控件的事件处理和控件数组
286
13.7 无模式用户窗体
289
13.7.1 闪屏
289
13.7.2 进度条
290
13.7.3 与菜单项组合在一起
291
13.8 特殊控件
293
13.8.1 组合框
293
13.8.2 Windows通用控件
296
13.9 实例分析
297
13.9.1 PETRAS 时刻表
297
13.9.2 PETRAS报表
297
13.10 结论
298
第14章 接口
299
14.1 什么是接口
299
14.2 代码重用
300
14.3 定义自定义接口
302
14.4 自定义接口的实现
303
14.5 自定义接口的使用
304
14.6 多态性
305
14.7 提高健壮性
309
14.8 简化开发
309
14.8.1 进度条
310
14.8.2 CProgressBar类
314
14.9 插件架构
318
14.10 实例分析
319
14.10.1 PETRAS 时刻表
319
14.10.2 PETRAS 报表
319
14.11 本章小结
319
第15章 VBA错误处理
321
15.1 错误处理的概念
321
15.1.1 未处理错误与已处理错误的比较
321
15.1.2 Err对象
321
15.1.3 何为错误处理器
322
15.1.4 错误处理器的作用域
323
15.1.5 On Error语句
324
15.1.6 Resume语句
326
15.1.7 产生自定义错误
327
15.2 单个退出点原则
327
15.3 简单错误处理
328
15.4 复杂错误处理器的结构
328
15.4.1 过程错误处理器
329
15.4.2 不重要的过程
331
15.5 中央错误处理器
332
15.6 类和用户窗体中的错误处理
337
15.6.1 Initialize和Activate事件
337
15.6.2 Terminate事件
338
15.7 把它们结合在一起
338
15.8 实例分析
343
15.8.1 PETRAS 时刻表
343
15.8.2 PETRAS报表应用程序
345
15.9 本章小结
350
第16章 VBA调试
351
16.1 基本的VBA调试技术
351
16.1.1 运行模式和中断模式
351
16.1.2 调试模式
352
16.1.3 使用断点(F9)
355
16.1.4 单步执行代码
355
16.1.5 改变执行点或设置下一条语句(Ctrl+F9)
357
16.2 立即窗口(Ctrl+G)
358
16.2.1 Debug.Print
358
16.2.2 充分利用立即窗口
359
16.3 调用堆栈(Ctrl+L)
360
16.4 监视窗口
361
16.4.1 设置基本的监视
361
16.4.2 使用基本的监视
362
16.4.3 监视类型
363
16.4.4 监视窗口中的数组、用户自定义类型(UDT)和类
365
16.4.5 快速监视(Shift+F9)
367
16.5 本地窗口
367
16.6 对象浏览器(F2)
368
16.6.1 基本特征
369
16.6.2 高级特征
369
16.7 创建和运行“测试桩”
370
16.8 使用断言
372
16.9 程序开发者应当知道的调试快捷键
373
16.9.1 一般情况
373
16.9.2 调试模式的代码执行
374
16.9.3 导航
374
16.9.4 信息
375
16.10 本章小结
375
第17章 优化VBA的性能
376
17.1 测量性能
376
17.2 PerfMon实用工具
377
17.3 创造性思维
380
17.3.1 做拼图游戏
380
17.3.2 确定步骤
380
17.3.3 站在盒子外思考
380
17.3.4 打破规则
382
17.3.5 了解数据
382
17.3.6 提出问题
383
17.3.7 了解工具
383
17.4 宏观上的优化
383
17.4.1 预处理
384
17.4.2 检查阶数
384
17.4.3 收紧循环
386
17.4.4 快速VBA 算法
386
17.5 在微观上的优化
391
17.5.1 VBA
392
17.5.2 Excel
394
17.6 结论
396
第18章 数据库开发简介
398
18.1 数据库简介
398
18.1.1 为什么使用数据库
398
18.1.2 关系数据库
399
18.1.3 基于文件的数据库和客户机-服务器数据库
399
18.1.4 规范化
399
18.1.5 什么时候不必规范化
404
18.1.6 关系与参照完整性
404
18.1.7 固有的主关键字和人为的主关键字
407
18.2 SQL简介
408
18.2.1 SELECT语句
408
18.2.2 INSERT语句
409
18.2.3 UPDATE语句
410
18.2.4 DELETE语句
410
18.3 用ADO进行数据存取
411
18.3.1 ActiveX Data Object(ADO)简介
411
18.3.2 ADO对象模型
411
18.4 进阶阅读
420
18.5 本章小结
421
第19章 Access和SQL Sever数据库编程
422
19.1 Northwind示例数据库的说明
422
19.2 设计数据访问层
423
19.2.1 为什么需要有一个单独的数据访问层
423
19.2.2 数据访问层的物理设计
423
19.3 使用Microsoft Access数据库
426
19.3.1 连接到Access数据库
426
19.3.2 使用连接字符串
427
19.3.3 Microsoft Access的数据访问技术
427
19.4 使用Microsoft SQL Server数据库
433
19.4.1 连接到SQL Server数据库
433
19.4.2 连接池
434
19.4.3 错误处理连接
435
19.4.4 SQL Server的数据访问
436
19.4.5 参数刷新
438
19.4.6 多个记录集
438
19.4.7 断开连接的记录集
440
19.5 从Access升迁到SQL Server
441
19.6 进阶阅读
444
19.7 实例分析
444
19.7.1 PETRAS时刻表
445
19.7.2 PETRAS报表
451
19.8 本章小结
452
第20章 数据处理技术
453
20.1 Excel的数据结构
453
20.1.1 非结构化区域
453
20.1.2 结构化区域
454
20.1.3 Excel 2003的列表
455
20.1.4 查询表
455
20.2 数据处理功能
457
20.2.1 处理的不仅仅是数据
457
20.2.2 数据透视表缓存
458
20.2.3 数据透视表
458
20.2.4 数据合并
461
20.2.5 高级筛选
462
20.3 高级函数
465
20.3.1 数据库函数
465
20.3.2 数组公式
466
20.3.3 循环引用
469
20.4 本章小结
470
第21章 高级图表技术
471
21.1 基本技术
471
21.1.1 组合图表类型
471
21.1.2 使用多个坐标轴
473
21.1.3 使用预定义名称来建立图表与数据的连接
473
21.1.4 伪造它
479
21.2 VBA技术
481
21.2.1 在图表坐标系之间进行转换
481
21.2.2 定位图表中的元素
483
21.2.3 计算合理的坐标比例
484
21.3 本章小结
485
第22章 控制其他Office应用程序
486
22.1 基本原理
486
22.1.1 自动化
486
22.1.2 引用
487
22.1.3 开发中的技巧
487
22.1.4 vTable表、早期绑定和后期绑定
489
22.1.5 处理应用程序实例
491
22.1.6 性能分析
496
22.2 主要Office程序的对象模型
498
22.2.1 Access和数据存取对象
498
22.2.2 Word应用程序
500
22.2.3 PowerPoint和MSGraph
502
22.2.4 Outlook
505
22.2.5 进阶阅读
508
22.3 实例分析
509
22.4 本章小结
509
第23章 Excel和Visual Basic 6
510
23.1 创建Hello World ActiveX DLL
510
23.1.1 创建ActiveX DLL工程
511
23.1.2 最简单的单向通信程序
512
23.1.3 更复杂一些的双向通信程序
514
23.1.4 在Excel显示VB6窗体
517
23.2 为什么要在Excel VBA工程中使用VB6 ActiveX DLL
521
23.2.1 代码保护功能
521
23.2.2 利用VB6窗体
521
23.2.3 更好的ActiveX控件支持
522
23.2.4 更好地支持面向对象程序设计
527
23.2.5 资源文件
530
23.2.6 VB6的其他特性
530
23.3 进程内通信与进程外通信
530
23.3.1 进程内通信
530
23.3.2 进程外通信
531
23.4 在VB6 EXE程序中自动化Excel
531
23.4.1 一个Excel自动化的简单程序
531
23.4.2 使用VB6 EXE作为Excel应用程序的加载器
536
23.5 COM外接程序
536
23.6 “Hello World”COM外接程序
537
23.7 加载设计器
539
23.7.1 通用页
540
23.7.2 高级页
541
23.8 安装注意事项
541
23.9 AddinInstance事件
542
23.9.1 Initialize
543
23.9.2 OnConnection
543
23.9.3 OnStartupComplete
544
23.9.4 OnAddInsUpdate
544
23.9.5 OnBeginShutdown
544
23.9.6 OnDisconnection
544
23.9.7 Terminate
544
23.10 命令栏的处理
545
23.10.1 使用命令栏事件钩子
545
23.10.2 命令栏的结构
545
23.10.3 自定义工具栏的外观
546
23.10.4 选择性粘贴栏的COM外接程序
546
23.11 为什么要使用COM外接程序
547
23.11.1 提高代码安全
547
23.11.2 COM外接程序能够与多个应用程序通信
547
23.11.3 使用独立线程
548
23.12 自动化外接程序集合
548
23.12.1 创建IfError的自动化外接程序
548
23.12.2 使用IfError自动化外接程序
549
23.12.3 在自动化外接程序中访问Excel应用程序对象
549
23.13 实例分析
550
23.13.1 在ActiveX DLL中利用资源文件加载图标
550
23.13.2 使用标准EXE程序作为Excel应用程序的加载器
554
23.14 本章小结
559
第24章 EXCEL和VB.NET
560
24.1 .NET Framework基础
561
24.2 Visual Basic .NET
562
24.2.1 Visual Studio的IDE环境
563
24.2.2 创建一个VB.NET解决方案
565
24.2.3 结构化的异常处理
569
24.2.4 模块和方法,范围和可见性
572
24.2.5 变量声明与赋值
572
24.2.6 创建新的对象实例
573
24.2.7 使用ByVal或ByRef
575
24.2.8 在VB.NET中使用向导
575
24.2.9 在VB.NET的数据类型
575
24.2.10 在VB.NET中使用数组
576
24.3 调试
580
24.3.1 设置键盘快捷键
580
24.3.2 启用非托管代码的调试
581
24.3.3 异常调试助手
581
24.3.4 对象浏览器(F2)
582
24.3.5 错误列表窗口(Ctrl+W Ctrl+E)
582
24.3.6 命令窗口(Ctrl+Alt+A)和立即窗口(Ctrl+G)
582
24.3.7 输出窗口(Ctrl+Alt+O)
583
24.3.8 断点(Ctrl+Alt+B)
583
24.3.9 调用栈(Ctrl+L)
584
24.3.10 快速监视和监视窗口
584
24.3.11 异常对话框(Ctrl+Alt+E)
584
24.3.12 条件编译常数
585
24.3.13 使用断言
586
24.4 有用的开发工具
586
24.4.1 代码区域
586
24.4.2 代码段管理器(Ctrl+K Ctrl+B)
586
24.4.3 将文件作为文本插入
587
24.4.4 任务列表(Ctrl+Alt+K)
587
24.5 Excel自动操作
588
24.5.1 主互操作程序集(PIA)
588
24.5.2 在.NET解决方案中使用Excel
589
24.5.3 使用后期绑定
593
24.6 .NET解决方案的资源
593
24.7 用ADO.NET获取数据
594
24.8 进阶阅读
598
24.8.1 Programming Microsoft Visual Basic .NET Version 2003
598
24.8.2 Visual Basic 2008 Programmer’s Reference(Visual Basic 2008程序员手册)
599
24.9 其他开发工具
599
24.9.1 MZ-tools
599
24.9.2 VSNETCodePrint
599
24.10 Q&A论坛
599
24.11 实例分析——PETRAS Report Tool.NET
599
24.11.1 .NET解决方案
601
24.11.2 Windows窗体的Extender Providers
603
24.11.3 线程
605
24.11.4 获取数据
607
24.11.5 导出数据
608
24.12 本章小结
611
第25章 使用VB.NET编写托管COM外接程序
612
25.1 选择开发工具集
612
25.2 创建托管的COM外接程序
613
25.2.1 剖析托管的COM外接程序
614
25.3 构建用户界面
626
25.3.1 命令栏用户接口的处理
626
25.3.2 Ribbon用户界面的处理
633
25.4 创建托管的自动化外接程序
639
25.4.1 创建与Excel应用程序对象交互的自动化外接程序
639
25.4.2 为什么不应当使用.NET来创建自动化外接程序
643
25.5 手工注册COM外接程序和卸载其注册信息
648
25.6 在VB.NET中使用类
648
25.6.1 创建设计良好的类
649
25.6.2 属性
652
25.7 使用ADO将数据导出到Excel
654
25.8 对COM外接程序进行Shim处理
657
25.8.1 MSCoree.DLL地狱
657
25.8.2 隔离
657
25.8.3 安全
658
25.8.4 COM Shim向导
658
25.9 相关的博客
663
25.9.1 XL-Dennis—VSTO & .NET & Excel
663
25.9.2 Andrew Whitechapel
664
25.10 其他开发工具
664
25.10.1 Add-in Express for Microsoft Office and .NET
664
25.10.2 AddinSpy
664
25.11 实例分析——PETRAS Report Tool.NET
664
25.11.1 介绍
664
25.11.2 加载和卸载COM外接程序
665
25.11.3 自定义菜单
667
25.11.4 在Excel中显示Windows窗体
670
25.12 本章小结
671
第26章 使用Visual Studio的Office工具开发解决方案
672
26.1 何为VSTO
672
26.1.1 VSTO的项目模板
675
26.2 应当何时使用VSTO
678
26.3 使用VSTO外接程序
680
26.3.1 创建我们的第一个VSTO外接程序
680
26.3.2 Ribbon可视设计器
687
26.3.3 自定义任务窗格
689
26.3.4 VSTO自动化外接程序
695
26.4 使用VSTO模板和工作簿的解决方案
695
26.4.1 宿主元素和宿主控件
696
26.4.2 Windows窗体控件
697
26.4.3 服务器端的VSTO解决方案
697
26.4.4 创建第一个VSTO工作簿解决方案
698
26.4.5 使用NamedRange宿主控件
699
26.4.6 使用ListObject宿主控件
700
26.5 部署与安全
702
26.5.1 使用ClickOnce部署VSTO解决方案介绍
703
26.6 进阶阅读
709
26.7 相关的门户与博客
709
26.7.1 微软的VSTO门户
709
26.8.2 Office Development with Visual Studio
709
26.8 其他开发工具
709
26.8.1 Microsoft Visual Studio Tools for the Office System Power Tools
709
26.9 本章小结
710
第27章 XLL和C API函数
711
27.1 为什么需要创建基于XLL的工作表函数
711
27.2 在Visual Studio中创建XLL工程
711
27.3 XLL的结构
716
27.3.1 函数表
716
27.3.2 DLLMain函数
719
27.3.3 标准XLL回调函数
719
27.3.4 其他XLL回调函数
721
27.4 XLOPER和OPER数据类型
722
27.5 Excel4函数
726
27.6 常用的C API函数
727
27.6.1 xlFree
727
27.6.2 xlCoerce
728
27.6.3 xlGetName
728
27.7 XLOPER变量和内存管理
728
27.8 自定义工作表函数的注册和取消
729
27.9 函数应用举例
731
27.10 工作表函数的调试
733
27.11 其他相关问题
734
27.11.1 COM自动化用户应该注意的问题
734
27.11.2 C++关键字与XLOPER定义的冲突
734
27.12 其他学习资源
734
27.12.1 MSDN中的Excel2007 SDK
734
27.12.2 Financial Applications Using Excel Add-in Development in C/C++
735
27.12.3 Laurent Longre的网站 (法语网站)
735
27.12.4 微软的Excel公共新闻组
735
27.12.5 Planatech XLL+
735
27.12.6 Keith Lewis的资源软件“Object-Oriented C++ Wrapper for the Excel C API”
735
27.12.7 Managed XLL
735
27.13 本章小结
735
第28章 Excel和Web服务
736
28.1 Web服务
736
28.1.1 使用VB.NET创建Web服务
737
28.1.2 从Excel使用Web服务
739
28.2 实例分析
742
28.2.1 PETRAS Web服务
742
28.2.2 PETRAS Timesheet
746
28.3 本章小结
749
第29章 帮助、安全、打包和发布
750
29.1 为应用程序提供帮助
750
29.1.1 概述
750
29.1.2 开始设计帮助文件
751
29.1.3 编写帮助内容
754
29.1.4 在VBA中显示帮助
754
29.2 安全
756
29.2.1 Excel的安全性
756
29.2.2 检查网络分组
757
29.2.3 宏安全与数字签名
758
29.2.4 数字签名的替代方法
759
29.3 打包
760
29.3.1 安装位置
760
29.3.2 安装要求
761
29.3.3 安装方式
763
29.4 发布
764
29.4.1 初始版本
764
29.4.2 升级
764
29.4.3 实时升级
764
29.5 本章小结
764

编辑推荐

《Excel专业开发:Microsoft Excel及VBA应用开发权威指南(第2版)》对Excel应用程序开发各种技术的介绍全面而深入浅出,通俗易懂,是Excel中高级用户和开发人员的首选书籍,也是想了解与提高Excel应用程序设计的技术人员的最佳参考书。

内容概要

Rob Bovey
robbovey@appspro.com
Rob Bovey是一家名为Application Professionals的软件开发公司的总裁,该公司专注于Microsoft Office、Visual Basic以及SQL Server等应用程序的开发。Rob将其多年以来为团体客户开发财务、会计和行政信息系统的宝贵经验带到了Application Professionals公司。如果您想了解更多的信息,请访问Application Professionals的官方网站www.appspro.com。
Rob曾负责完成了Microsoft Excel中几个插件的开发,先后参与了Microsoft Excel 97 Developers Kit和Excel 2002 and 2007 VBA Programmer's Reference两书的编写。Rob分别于罗切斯特理工学院和北卡罗来纳州大学Chapel Hill分校获得理学学士学位和MBA硕士学位。自1995年以来,Rob每年都被Microsoft授予“最有价值专家”称号。
Dennis Wallentin
dennis@excelkb.com
Dennis Wallentin与妻子和两个女儿生活在瑞典Östersund。从1980年开始,Dennis就一直致力于Excel企业解决方案的开发,拥有企业管理和会计学硕士学位。
Dennis是XL-Dennis的创始人。他为各种不同规模的公司,包括瑞典本土和国际公司的公共部门提供解决方案。同时,他还为最新版的Excel程序和图书撰写评论,以及在瑞典的杂志上发表与Excel相关的文章。在过去的几年中,Dennis专注于基于.NET技术的Excel企业解决方案的开发,其中也包括Visual Studio Tools for Office System(VSTO)。
Stephen Bullen
stephen@oaltd.co.uk
Stephen Bullen和妻子Clare、女儿Becky,以及名叫Fluffy和Charlie的两只狗,生活在英国伦敦Woodford Green。Stephen在牛津大学获得工程学、经济学和管理学硕士学位,是难得的精通商业和技术的双料专家。
Stephen目前供职于美林公司伦敦分公司,管理着一个全球性的电子表格开发团队,负责前端办公系统定价和风险管理工具的生产。
Stephen创办的网站(www.oaltd.co.uk)上提供了许多帮助使用Excel和进行Excel应用程序开发的工具、案例和相关技术,以及一些有趣的小贴士。
在此之前,Stephen曾先后参与John Green的Excel 2000 VBA Programmer's Reference一书及其后续更新版的编写。(这些书均由Wrox Press出版社出版。)
15年来,Stephen还一直活跃在与Excel相关的网上社区。因其丰富的知识、技能和卓越贡献,自1996年以来,Stephen每年都被Microsoft授予“最有价值专家”称号。
John Green
greenj@bigpond.net.au
John Green是一名独立计算机顾问,工作生活地在澳大利亚悉尼市,他精于利用VBA对Excel、Access、Word及Outlook进行整合。John有着30年以上的计算机从业经验,并获得了化学工程学士学位和MBA硕士学位。
John使用FORTRAN编写了第一个程序,随后投入到了大型机的专业设计语言发展中。20世纪80年代早期,John的研究兴趣开始向电子表格系统转移,包括Lotus 1-2-3和微软的Excel。
1980年,John创办了自己的公司Execuplan Consulting,主要致力于开发建立在计算机基础上的计划应用系统,并负责培训用户和开发人员。
John在许多澳大利亚杂志开设了定期专栏,同时还参编了许多计算机图书,其中包括Que出版社出版的Excel Expert Solutions和Using Visual Basic for Applications 5。此外,他还是Wrox出版社出版的Excel 2000 VBA Programmer's Reference及其后续版本的主要作者之一。
在1995—2006年,John因其对CompuServe Excel论坛和微软网络新闻组所做出的杰出贡献而被微软授予“最有价值专家”称号。

名人推荐

随着Excel应用程序的日益复杂和Windows开发平台的愈加强大,Excel开发人员需要一本像这样的书来帮助他们将Excel解决方案提升到一个全新高度。本书适用于那些希望利用微软的最新技术开发出功能强大的、艺术级的Excel应用程序的开发人员。 ——Gabhan Berry,微软项目经理,Excel编程专家 本书第一版让我在Office开发方面获益最多,也是我最愿推荐的一本好书。第二版在第一版的基础上对内容的广度和深度都进行了扩展。本书的亮点是对每个问题的处理都能比你的预想更讲—步。书中凝聚了作者当前实际应用的经验,不仅对某些特性的工作原理进行了剖析,而且还探讨了在专业工作中使用该特f出开产生的实际影响。 ——Shauna Kelly,Thendara Green总监 本书对如何开发出设计良好、健壮和可维护的Excel应用程序的相关技术进行了介绍。书中所述来源于作者几十年设计和开发应用程序的丰富经验。此外书中还给出了一个贯穿全书的时间表应用程序开发案例,借此案例精要介绍了理论方法的实际应用。每个严谨的Excel开发人员都应该认真阅读此书,定会获益匪浅。我就是这样做的。 ——Bill Manville,Bill ManxSlle Associates应用开发人员 本书详尽解释了许多难以理解的概念,给出了某些复杂开发项目的多种解决方案并析其利弊,其对最佳开发实践的介绍尤其值得赞赏。 ——Beth Melton,Microsoft Office MVP,独立承包商 本书是一本专为严谨的Excel开发人员准备的专业书籍,其内容不仅包括对象模型、工作表布局和代码语法,更重要的是对专业开发人员的工作设计思路进行了探讨。本书对Excel的探讨相当深入,更为难得的是它还对成功的Excel开发背后的思维和逻辑过程进行了探索。 ——Jon Pelfier,Microsoft Excel MVP,Pelfier Technical Services公司总裁

章节摘录

版权页:   插图:   注意,如果要对Excel对象库之外的对象使用早期绑定,必须先在VBE的菜单“工具>引用”中指定一个对相关对象库的引用。例如,要创建一个早期绑定ADO对象的变量,必须首先指定一个对Microsoft ActiveX Data Objects 2.x库的引用(此处X表示ADO的版本号),应该尽可能地使用早期绑定。相对后期绑定而言,早期绑定具有以卞优点: 性能更好编译时,若VBA已知对象变量的数据类型,则VBA可从对象中获取其属性和方法的内存地址,并将其与代码存储在一起。在运行时,如果VBA NNT早期绑定的属性或方法,只需要执行对应存储位置的代码即可。(为了说明方便,在描述上做了一定程度的简化。实际上VBA存储的是执行代码相对于内存起始地址的偏移量,即相对于对象Vtable的偏移量。) 若变量为后期绑定,则VBA无法知道变量所包含的对象类型。所以,在编译时就不能对属性及方法进行优化。这意味着若VBA需要调用后期绑定变量的属性和方法,每次都必须先确定变量所包括的对象类型,然后再根据属性或方法的名称确定其对应的内存位置,最后才执行相应的代码。显然,这个过程比早期绑定慢得多。 类型检查更严格在代码清单3—13所示的后期绑定示例中,如果不小心将对象变量所引用的ADO Connection对象写成了ADO Command对象,VBA不会就此给出提示。你只有在代码中使用到Command对象不支持的方法和属性时,才会发现其中潜在的问题。然而,如果对象采用的是早期绑定的方法,那么VBA会立即检测出当前所引用的对象有误,并给出“类型不匹配”的错误提示,这样可在代码尚未运行时就检测出所调用属性或方法的不正确性。在编译时,VBA会在对应的对象库中查找要调用的属性名或方法名,如果没有找到,VBA就会抛出编译时错误。 具有智能感知的功能采用早期绑定的方式可使编程更为容易,因为VBA能确切地知道变量所代表的对象类型,在用户输入属性或方法名称的一部分时,VBA就会解析相应的对象库,并弹出一个下拉列表框,其中包含了相关的属性名和方法名,方便用户选择。 然而,在某些特殊情况下需要使甩后期绑定而非早期绑定。以下是两个最常见的必须使用后期绑定的情况: 1.采用早期绑定的方式时,若程序中需要的对象库版本比计算机中现有的版本更高,则程序的兼容性会被破坏,无法正常运行。 这种情况非常普遍。如果应用程序中引用的是新版的应用程序对象库,而当前运行程序的计算机中采用的却是旧版的应用程序对象库,此时就会产生“无法找到工程或库(Can't find project or library),的运行错误。而且,这种情况非常容易引起误导,因为产生这种错误的根本原因是代码编写不当,而与对象库没有任何关系。 如果希望避免上述错误的出现,让应用程序在各种版本的对象库中均能正确运行,就需要在引用对象时使用后期绑定。在创建新对象时,也只能使用带有独立参数ProgID的函数CreateObject,而不能使用“=New ObjectName”的语法格式。 2.当不能确定用户是否安装了应用程序所需要的支持软件,而且也不能白行安装这些软件时,只能采用后期绑定的方式。 在这种情况下,采用后期绑定的方式可以避免因为没有相应的对象库而产生的编译错误。在应用程序运行时,它会检查在当前计算机中该对象库是否存在,如果不存在,应用程序就会自动退出。 提示:在编写使用后期绑定的代码时,可以先用早期绑定代替后期绑定,这样可充分利用代码的自动提示,提高编写的效率。而在代码编写完毕后,在最后的测试和发布之前再将早期绑定更改为后期绑定。


 Excel专业开发下载



发布书评

 
 


精彩短评 (总计6条)

  •     急着用这本书,因为这几天刚好要写一个程序,准备周末的时间看完这本书,可是快递公司太不给力了。亚马逊加油啊。
  •     看了一小半,思路OK。水平够高。
  •     很专业,对有一定基层,但遭遇一定瓶颈的朋友有一定的启示和引导作用.是一本可以保存的好书.
  •     如果只是简单VBA,那么这本书可能太过深奥但是想要成为Excel开发人员,做出程序级别的效果,那这本书无疑是极其经典的。本人研究Excel将近5年,买过看过的书估计近百,但没有哪一本可以超越这本书。如果你觉得书很难懂,请千万不要放弃,任何学问其实都有瓶颈点,过了才有机会成为大师。
  •     大致看了这本书,在变量的命名,结构的写法上 让我有了进一步的提高、
  •     用Excel谁都会,但是用得精用得妙,我想这本书能帮上忙的。毕竟掌握一门技能,不仅对个人有利,而且对整个公司的自动化运营都至关重要。这本书真心推荐。好好读,现在才读到一半,已经很给力了,比那些《让Excel飞》强多了。
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024