第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:自定义Offiice 2007 Ribbon 203
10.7相关网站 203
10.7.1 Offiice开发人员网站中的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.21读取屏幕分辨率 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使用标准EYE程序作为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何为V STO 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 Offiice 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中的Exce12007 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