本书是为有兴趣把技能迁移到下一代Office开发的VBA开发者写的。你可以得到编写Word 2003、Excel 2003和Outlook 2003托管代码程序的易懂且实用的介绍,还将学到如何用VSTO 2005 SE为最受欢迎的Office 2003和Microsoft Office 2007应用程序创建插件。
作为这方面的专家,作者通过丰富的代码示例来展示受欢迎的VSTO功能,例如智能标记和操作窗格。示例代码也向你演示了如何定制Microsoft Office 2007新的UI功能,包括功能区、自定义任务窗格和Outlook窗体区域。
VBA开发者将会轻松获得:
■对托管代码和Visual Studio集成开发环境(IDE)的深入理解。
■多个如何使用视图控件、数据绑定和操作窗格为Word 2003和Excel 2003创建文档级别的定制程序的示例。
■为Outlook 2003开发插件的全面概览。
■用VSTO和VSTO 2005 SE创建的解决方案在安全和部署方面的有用信息。
■如何把VBA解决方案迁移到Visual Basic 2005和VSTO的详细说明。
■更多关于为Microsoft Office 2007开发VSTO 2005 SE插件定制功能区、自定义任务窗格和Outlook窗体区域的详细信息。
对本书的赞誉
“真希望第一次接触VSTO和.NET Framework时就拥有这本书。它对于那些考虑VSTO以及从Office VBA转到Visual Basic.NET的人都是极具价值的。广泛涉猎的主题为MSDN和其他方面的更加深入的面向开发者的文档提供了一个切入点。”
——Cindy Meister, 微软 Word MVP
“《VSTO开发者指南》做了一件很好的事,在VBA和VSTO这两个世界之间架起了一座桥。Kathleen和Paul告诉我们,VBA开发者如何在拥有丰富Office知识的同时也能获得Visual Studio的强大、可维护性和安全性。他们成功地写了一本易于接受、易于理解和令人信服的书。”
——KD Hallman, 微软开发人员部门主管
“对于想要转到使用VSTO为Office进行.NET开发的VBA开发者,这本书是一个不错的选择。很多示例都展示了VB.NET代码和对应的VBA代码,帮助解释关键概念和用法的区别。”
——Steve Hansen, OfficeZealot.com,
《Mastering Excel 2003 Programming with VBA》作者
和《Mastering Excel 2000 Premium Edition》作者之一
无
本书是为有兴趣把技能迁移到下一代Office开发的VBA开发者写的。你可以得到编写Word 2003、Excel 2003和Outlook 2003托管代码程序的易懂且实用的介绍,还将学到如何用VSTO 2005 SE为最受欢迎的Office 2003和Microsoft Office 2007应用程序创建插件。 作为这方面的专家,作者通过丰富的代码示例来展示受欢迎的VSTO功能,例如智能标记和操作窗格。示例代码也向你演示了如何定制Microsoft Office 2007新的UI功能,包括功能区、自定义任务窗格和Outlook窗体区域。 VBA开发者将会轻松获得: ■对托管代码和Visual Studio集成开发环境(IDE)的深入理解。 ■多个如何使用视图控件、数据绑定和操作窗格为Word 2003和Excel 2003创建文档级别的定制程序的示例。 ■为Outlook 2003开发插件的全面概览。 ■用VSTO和VSTO 2005 SE创建的解决方案在安全和部署方面的有用信息。 ■如何把VBA解决方案迁移到Visual Basic 2005和VSTO的详细说明。 ■更多关于为Microsoft Office 2007开发VSTO 2005 SE插件定制功能区、自定义任务窗格和Outlook窗体区域的详细信息。 对本书的赞誉 “真希望第一次接触VSTO和.NET Framework时就拥有这本书。它对于那些考虑VSTO以及从Office VBA转到Visual Basic.NET的人都是极具价值的。广泛涉猎的主题为MSDN和其他方面的更加深入的面向开发者的文档提供了一个切入点。” ——Cindy Meister, 微软 Word MVP “《VSTO开发者指南》做了一件很好的事,在VBA和VSTO这两个世界之间架起了一座桥。Kathleen和Paul告诉我们,VBA开发者如何在拥有丰富Office知识的同时也能获得Visual Studio的强大、可维护性和安全性。他们成功地写了一本易于接受、易于理解和令人信服的书。” ——KD Hallman, 微软开发人员部门主管 “对于想要转到使用VSTO为Office进行.NET开发的VBA开发者,这本书是一个不错的选择。很多示例都展示了VB.NET代码和对应的VBA代码,帮助解释关键概念和用法的区别。” ——Steve Hansen, OfficeZealot.com, 《Mastering Excel 2003 Programming with VBA》作者 和《Mastering Excel 2000 Premium Edition》作者之一
Visual Studio Tools for Office(VSTO)的目标受众是“专业开发者”。这个术语有多重含义,而我们听到的最受认可的定义是“通过写代码获取报酬的人”。换句话说,这是他的主业。他不是部门开发者,比如说,把写Excel宏作为会计任务的一部分的会计人员,或者定制Word来增加生产力的办公人员。相反,他是一个有兴趣把Microsoft Office作为开发平台的NET开发者。
我们相信传统的Office开发者也会对VSTO感兴趣。在加入Microsoft之前,我们俩都是VBA开发者,定制Office应用程序,并且我们非常有兴趣了解托管代码。在这方面,我们不认为我们是唯一的。有上百万VBA开发者,许多人都有兴趣学习下一代Office开发。现在的VSTO图书和文档通常都不是为VBA开发者写的,它假设开发者熟悉Visual Studio、面向对象编程和NET Framework。这就不难理解为什么它把重点更多地放在VSTO的功能和如何使用笨重的Office对象模型。
我们想为VBA开发者写一本书。虽然你可能不熟悉NET编程,但你有一个重要的优势:Office对象模型的知识。作为一个Office开发者,你很可能非常熟悉Office应用程序,在操作Office对象模型方面也有丰富的经验。我们认为学习托管代码的最佳环境是你已经熟悉的Office开发环境。
VSTO把Office开发带到NET的世界,和VBA相比,它既有优点也有缺点。使用VSTO,你可以更好地定制Word、Excel和Outlook,例如,创建自定义任务窗格、向文档添加智能标记和把文档上的对象绑定到数据源。使用VSTO 2005 SE,你可以为6个Office应用程序创建插件、定制新的2007 Microsoft Office系统的功能区和创建应用程序级别的自定义任务窗格。
我们有幸和为VSTO进行设计、编码、测试和写文档的人一起工作,并从他们那里学到了很多。我们得到了内部人士对VSTO的看法,我们希望以一种易懂和有趣的方式把这些信息传递给你。——Kathleen McGrath和Paul Stubbs前言
世界上有上百万Microsoft Office开发者。大多数创建Visual Basic for Application(VBA)解决方案的人都不会把他们自己看作Office开发者,但他们是。事实上,如果你使用VBA定制Office文档,那么你就在使用其中一个最受欢迎的开发平台了。
你可能已经开始了开发生涯,在Word或者Excel里录制宏来自动化重复的任务。不久之后,你开始调整你的宏,让它们按照你所需的方式工作。你或许有过这样的经历,由于准时为老板创建了重要的文档,成为了办公室的英雄。如果你和很多人一样,那么你已经深入到VBA编码了。你现在从零开始创建VBA项目,代码的行数也激增。你甚至可能已经发现VBA的一些局限性,从而妨碍你创建真正想要的解决方案。
你或许已经听说Microsoft在向VBA语言添加新功能上并不积极。这并不是说Microsoft将会停止支持VBA,而是说不会增加新的功能,例如Web服务、XML和其他诸如代码段的功能。但是,如果你使用Visual Studio 2005 Tools for Office(VSTO)和Visual Basic,你就可以利用这些新功能。
你可能已经开始转到使用VSTO开发Office并且想了解更多内容。或许你现在只是想试一下VSTO,然后看看使用托管代码能为解决方案带来哪些增强。
简而言之,使用VSTO和Visual Basic 2005能使工作效率到达一个新的层次,而无论你在到达这个新的层次的路上走了多远,本书都会帮助你达到那个层次。
本书面向的读者群
我们是为VBA开发者写本书的。“VBA开发者”是一个很宽泛的术语,它包括任何录制过简单的宏的人和创建企业级解决方案的专业开发者。本书是为那些人而写的,从只懂很少VBA编程的初级VBA开发者到已经使用Visual Basic 60或者Visual Basic 2005的高端开发者。
这是一本关于从VBA转到Visual Basic 2005的书。你会学到如何用Visual Basic 2005创建很好的Office解决方案,Visual Basic 2005将是你认为可以使用的最好的Office开发语言。
本书的目的
我们俩有使用VBA创建Office解决方案的经验,我们认为有必要帮助其他人转向使用Visual Studio 2005和VSTO进行托管编程。和VSTO团队一起工作使我们对VSTO和Office开发有了更深的理解。我们和很多VBA开发者谈过,他们的问题是如何把他们用VBA写的代码翻译成VSTO和Visual Basic 2005。多年来,我们开始看到VBA开发者所碰到的问题的模式。我们决定写这本书来满足这些需要。
阅读本书的方法
本书要按章节顺序阅读。每章都是基于前一章的概念的。这些概念的复杂度也随每章增长。
一开始,我们向你示范一些基本的东西,例如创建一个项目并运行它。如果你对VSTO或者Visual Basic 2005不熟悉,我们推荐你从头开始并按你的方式读下去。如果你熟悉Office和NET编程,你可以直接跳到感兴趣的章节。
我们还在附录里包含了高级示例,在你熟悉VSTO编程之后可以使用。附录A示范了如何创建XML代码段。这些代码段允许你向解决方案插入代码,使创建应用程序变得更快更容易。附录B示范了一个为Outlook Inspector创建工具栏的方法。
本书的组织结构
这里是每章的简要概述。
第一部分:VSTO概述
第1章介绍了VSTO,示范了如何用Visual Studio集成开发环境(IDE)创建解决方案,并介绍了一些你将会在其他章节深入学习的VSTO功能。
第2章示范了如何使用IDE的一些功能,包括如何生成、运行和调试解决方案。本章也向你示范了如何使用集成帮助系统更容易地找到使用VSTO编程的相关信息。
第3章讲述NET Framework的基础知识,包括讨论面向对象编程和Visual Basic 2005的新功能,也将会探讨公共语言运行库的功能和Office主互操作程序集(PIA)。
第4章讨论了从VBA转到Visual Basic的原因,并展示了VBA里没有的Visual Basic强大的新功能。你也将会看到如何从VBA向Visual Basic 2005迁移关键的语言功能,例如从UserForms转到Windows Forms。
第二部分:Word和Excel
第5章介绍了Document Actions任务窗格。你将会学到如何管理和设计操作窗格。你也将会学到如何使用XML和操作窗格创建强大的上下文相关的解决方案。
第6章示范了如何创建Word项目并解释项目背后的结构并且将介绍如何在文档上使用Word控件绑定数据和处理事件。
第7章示范了如何创建Excel项目并解释项目背后的结构并且将介绍如何在工作表上使用Excel控件绑定数据和处理事件。
第8章示范了如何向解决方案添加控件,并介绍如何向工具栏和菜单添加控件,如何在文档或者工作簿上使用Windows Forms控件,以及如何在运行时创建控件。
第9章讲述了如何在Word和Excel里创建文档级别的VSTO智能标记并介绍如何识别术语和表达式以及如何处理智能标记的操作。
第三部分:Outlook和其他内容
第10章解释了如何为Outlook创建应用程序级别的定制程序,并将介绍Outlook对象模型,如何定制菜单和工具栏,如何保护和调试Outlook插件。
第11章介绍了VSTO的安全模型并示范了如何保护和部署Word、Excel和Outlook项目。你将会看到如何使用Publish Wizard和Visual Studio Setup项目进行部署。
第12章描述了把VBA解决方案迁移到VSTO的原因。你将会学到更多转换策略并演练一个转换示例。
第13章讨论了如何向文档添加VSTO定制程序(和从文档中移除它)。本章也向你示范了如何访问服务器上的VSTO文档里的数据缓存。
第14章包含了使用VSTO和Office 2007的例子。你将会学到如何对Office 2007的新功能编程,例如应用程序级别的自定义任务窗格、Office功能区和Outlook窗体区域。
致谢
我要感谢我的丈夫Mark Shelton,他在整个过程里默默地支持我,审阅了许多章节,在我集中精力展开这个项目的时间里,他显示出无比的耐心。另外,非常感谢我的合著者Paul Stubbs。感谢Paul在技术方面的专业知识、他对完成这个项目所付出的努力和他的幽默感。——Kathleen McGrath我要感谢我的家人,在长时间的写作和修订中对我的支持,尤其是我的妻子,她把一切事情都处理很好,让我可以集中精力,尽可能把书写好。我还要感谢Kathleen邀请我为这本书写部分章节。和Kathleen合作很棒,她对VSTO的热情使这本书成为可能。——Paul Stubbs我们还要感谢我们的编辑Joan Murray,让我们有机会写本书,并且指导我们完成这个过程。特别感谢我们的系列编辑Mike Hernandez,因为他允许这本书成为Mere Mortals系列的第一本与产品相关的书。
另外,我们要感谢我们的技术编辑和AddisonWesley的制作和营销团队,尤其是Kim Boedigheimer、John Fuller、Lara Wysong、Curt Johnson和Eric Garulay。感谢所有向我们提供宝贵建议的技术审阅者,包括Eric Carter、Mei Liang、Justin Whitney、Peter Jausovec、Rory Plaire、Joe Kunk、McLean Schofield、Thomas Quinn和Frank Rice。VSTO产品组创建了如此棒的产品,我们为每个成员感到自豪!
作译者简介作者简介
Kathleen McGrath在Microsoft做技术作家。她为Visual Studio 2005 Tools for the Microsoft Office System(VSTO)、Visual Studio Tools for Applications(VSTA)和Visual Basic写过文档。在加入Microsoft之前,她是一个VBA开发者,为金融印刷及法律行业定制Word应用程序。Kathleen还创建了视频短片,演示VSTO和Visual Basic的功能,这些录像放在她的博客上。她的博客是http://blogsmsdncom/kathleen。
Paul Stubbs在Microsoft的Visual Studio Tools for Office(VSTO)组做程序经理。除了VSTO,Paul还和VSTA组合作为InfoPath 2007和独立软件供应商(ISV)开发新的托管代码应用程序的可编程开发工具。Paul为《MSDN Magazine》写过文章,也在诸如TechEd和TechReady的活动上演讲过。Paul还参与Microsoft论坛的开发者社区,他的博客是http://blogsmsdncom/pstubbs。
译者简介
李永伦
连续3次获得 Microsoft MVP 称号,现就职于高知特信息科技(上海)有限公司。喜欢阅读《新发现》、《经理人》和《心理月刊》,曾参与《C# 和 NET 实战: 平台、语言与框架》一书的翻译。好于博客中长篇大论自己之见解,也醉于阅读他人短小精巧之言论。你可以在 http://allenloopleecnblogscom 阅读到他的技术文章,也可以通过 allenlooplee@yahoocomcn 与他交流。
Kathleen McGrath;Paul Stubbs:Kathleen McGrath: Microsoft技术作家。她为VSTO、Visual Studio Tools for Applications(VSTA)和Visual Basic写过文档。Kathleen在她的博客(blogs.msdn.com/kathleen)上演示了VSTO和Visual Basic的功能。
Paul Stubbs: Microsoft的VSTO团队程序经理。Paul还和VSTA团队合作为InfoPath 2007开发新的托管代码应用程序的可编程开发工具。Paul参与Microsoft论坛,他的博客是blogs.msdn.com/pstubbs。
李永伦:暂无简介
还记得第一次父亲带我去看电脑时,商家首先给我们演示的是电脑的办公功能,包括字处理、电子表格和演示文稿,其实只是分别打开安装在Windows 32上的Word、Excel和PowerPoint。这是我第一次接触Microsoft Office,也正是这次接触激发了我对Microsoft Office的好奇心,回去之后我买了一本关于Word for Windows的书,这也是我的第一本计算机书籍。
这么多年来,Microsoft Office的功能爆炸式地增加,但增加的都是普通用户的通用功能,你不会看到为你的问题量身定做的解决方案。比如说,在我翻译这本书的过程中,要无数次插入这类内容:程序清单21引发异常的代码
Private Sub Sheet1_BeforeDoubleClick(ByVal Target As _
MicrosoftOfficeInteropExcelRange, _
ByRef Cancel As Boolean) Handles MeBeforeDoubleClick
Dim myString As Object = Nothing
MsgBox(myStringToString)
myString = "This is a test"
MsgBox(myStringToString)
End Sub
我有必要手工输入每一个字符吗?很明显,没有!如果你不在Word上进行二次开发,恐怕你的手就要受罪了。对于这个简单的例子,VBA开发者可能已经开始在大脑里编码了,但如果提出这个需求的是一个NET开发者,那么这口饭就不那么容易吃了。自从某天邂逅了VSTO,在用Microsoft Office时,我变得比以前积极了,遇到问题(像上面提到的那个)时,我也更主动地去思考解决方案,而不是走出阳台无奈地望着天。通过VSTO,我可以把现有的NET技能都用到Office开发上,发挥想象力,把创意融入Office,比如说,为自己量身定做一套翻译辅助工具,你可以在里面包含术语管理,甚至可以尝试实现辅助重构。
本书本身是为VBA开发者写的,作者在书里和你分享他们从VBA转到VSTO时的心得,帮助VBA开发者更平滑地转到VSTO。如果你恰好是一个VBA开发者并且有兴趣加入NET这个大家庭,那么本书就是你的不二之选了。如果你是一个NET开发者,你也不会感到失望,作者在书里以独特的视角和你分享他们对VSTO的理解,而这些都和你平时所接触到的知识形成互补之势。
最后,希望本书能够成为你的好帮手。
李永伦
2008年于上海
如果你熟悉VBA并且考虑将要踏入使用Visual Basic 2005和Visual Studio Tools for Office(VSTO)的Office开发世界,不要再等了,这就是你要找的书。 Kathleen和Paul在本书里用独特的方法为VBA开发者讲述VSTO。从VBA转到Visual Basic 2005和VSTO时,有很多新的东西需要学习,让我们面对吧。Visual Basic语言的改变比你想要的多,而且也去掉了一些熟悉的原有的语言构造。幸运的是,本书描述了当你从VBA开发转到Visual Basic 2005开发时将会遇到的主要改变。VSTO的开发环境也和VBA的开发环境很不同。再有,本书给你指出VSTO的新功能并帮助你理解如何把你辛苦得到的VBA技能迁移到基于Visual Studio的新开发环境。 最后,从VBA转到VSTO是否值得?我想你会发现这是值得的。VSTO提供了更丰富的环境,还有很多强大的功能可以在你的Office开发项目里使用,最终使你事半功倍。这难道不是你想要的吗? Kathleen和Paul是引领你进入VSTO新世界的最好向导。Kathleen在VSTO开发期间是一个技术作家,换句话说,她在我们开发VSTO的时候就开始写这方面的东西了。我发现写作是验证设计的最好方法,事实也是如此。当Kathleen为VSTO写作时,她会走进我的办公室,指出很多令人迷惑或者错误的东西。最终,她使VSTO变得更好。她从一个独特的角度去理解VSTO的功能并写下这方面的东西。 我还要提及Kathleen收集整理的关于VSTO的非常棒的录像。如果你仍在考虑是否在自己的项目里试一下VSTO,请看一些她的录像,以及她作为VSTO组博客的贡献者为社区做的其他贡献: http://blogsmsdncom/vsto2/ 在这本书里,你不仅得到Kathleen的智慧,也得到Paul的智慧。Paul是VSTO的早期用户之一,他通过参与VSTO产品早期的软件设计评审协助指导Microsoft。因为他的帮助很大,所以VSTO组雇用了他。即使在他加入Microsoft之后,他仍继续发挥VSTO“第一批用户”这个角色的作用。如果你搜索论坛和新闻组,就会发现Paul经常回复开发者贴出的VSTO难题。 正如你所期望的,Paul和Kathleen都有很好的博客。你可以去看看: http://blogsmsdncom/kathleen/ http://blogsmsdncom/pstubbs/ 作为本书的早期审阅者,我喜欢这种让VBA开发者感到易懂和实用的方式。你不会在本书里找到任何C#代码,这很好。Visual Basic是你可以选择的用于Office开发的最佳语言,因为Visual Basic伴随着Office一起成长,它的功能让Office对象模型变得更加易用。另外,我发现本书有很多很好的提示和技巧,让你获得最佳的VSTO体验,比如说,Kathleen和Paul告诉你如何设置你的环境,使调试更加容易。 最后,这是第一本介绍VSTO 2005 SE的书,你现在可以为更多Office应用程序开发,包括Office 2007。另外,我还想透露一下,我们已经在开发用于Office 2007的下一代VSTO,我们会继续努力让VSTO变得简单和强大。VSTO会延续下去,而本书则会帮助VBA开发者实现转换。 Eric Carter Microsoft公司 VSTO开发经理
对本书的赞誉
译者序
推荐序
序言
前言
第一部分VSTO概述
第1章VSTO入门1
11本章主题1
12什么是VSTO1
13为什么用VSTO代替VBA2
14VSTO的功能3
141宿主项和宿主控件4
142Windows Forms控件5
143智能标记6
144定制任务窗格6
145在文档中缓存数据7
146托管插件7
147安全和部署7
148功能区支持8
149增强开发环境8
15创建VSTO解决方案8
151用VBA创建Office解决方案8
152用VSTO创建Office解决
方案8
153项目类型9
16VSTO如何与Visual Studio集成12
161把Word和Excel当作
设计器12
162VSTO中的代码文件13
17小结14
18复习问题15
第2章编程环境16
21本章主题16
22Visual Studio IDE介绍16
221环境设置16
222创建Visual Studio Tools for
Office项目17
223准予访问VBA项目系统19
224菜单和工具栏20
23查看IDE窗口21
231代码视图21
232探究Solution Explorer23
233Properties窗口28
234浏览Object Browser28
235项目属性30
236查看其他Visual Studio窗口31
24编码工具32
241使用智能感知33
242编辑并继续37
25生成和运行代码37
26调试你的代码38
261设置断点41
262逐语句、逐过程和跳出代码42
263试用调试工具44
264使用调试窗口46
27查找和使用帮助50
271目录50
272索引51
273搜索51
274如何实现52
275动态帮助53
28小结53
29复习问题53
第3章托管代码介绍54
31本章主题54
32什么是托管代码54
33面向对象编程介绍55
331理解类和对象55
332分部类61
333泛型类62
334接口63
335面向对象概念64
34探究 NET Framework65
341程序集65
342命名空间66
343应用程序域66
344公共语言运行库67
345公共语言规范68
346NET Framework类库69
35VSTO和托管代码71
351主互操作程序集72
352解决方案程序集74
353运行VSTO解决方案75
36小结75
37复习问题75
第4章从VBA转到VSTO和
Visual Basic 200576
41本章主题76
42转到Visual Studio 200576
43Visual Basic 2005的新功能77
431My对象77
432智能感知代码段80
433语句80
434运算符82
44VBA和Visual Basic 2005在
语言上的差别83
441数据类型83
442方法86
443变量的声明和作用域87
444默认属性88
445枚举88
446异常处理88
45UserForm和Windows Forms90
451比较ActiveX控件和
Windows Forms控件91
452控件功能的改变96
46小结101
47复习问题101
第二部分Word和Excel
第5章定制Word和Excel任务
窗格102
51本章主题102
52什么是任务窗格102
53定制Document Actions任务窗格103
54管理操作窗格104
541管理操作窗格的大小和位置105
542显示和隐藏操作窗格105
55设计操作窗格解决方案106
551创建操作窗格解决方案107
552添加操作窗格控件108
553从文档访问操作窗格109
554从操作窗格访问文档110
555管理控件顺序113
56创建上下文相关的解决方案115
561创建XML架构116
562映射XML元素到你的文档117
563创建多个操作窗格控件118
564显示和隐藏操作窗格上的
控件119
565向操作窗格控件添加功能119
57小结122
58复习问题122
第6章使用VSTO定制Word123
61本章主题123
62对Word进行编程123
621把录制的VBA宏转换成
VSTO里的Visual Basic125
622重写内置命令126
63Word宿主项和宿主控件130
631向文档添加宿主控件131
632从基础的互操作对象访问
宿主控件136
633从宿主控件访问互操作对象138
64对文档上的宿主控件进行数据
绑定138
641把数据绑定到控件138
642在文档里缓存数据142
65对事件进行编程142
651Bookmark控件的事件143
652XMLNode控件的事件150
653XMLNodes控件的事件154
654Document的事件154
66对Bookmark的特别强化159
67使Word文档智能化161
68小结162
69复习问题163
第7章使用VSTO定制Excel164
71本章主题164
72对Excel进行编程164
721了解Excel对象模型167
722把录制的VBA宏转换成
VSTO里的Visual Basic168
723写回调从VBA访问VSTO
代码169
73Excel宿主项和宿主控件171
731宿主项172
732宿主控件172
733向工作表添加宿主控件172
734移除宿主控件179
735在运行时添加宿主控件180
736控件持久化183
737从基础的互操作对象访问
宿主控件184
738从宿主控件访问互操作对象185
739在Excel里添加宿主项185
7310Excel的区域设置问题186
74对工作表上的宿主控件进行
数据绑定186
741创建数据源186
742向工作表添加数据绑定控件188
743使用关联数据193
744在工作簿里缓存数据194
75对事件进行编程194
751NamedRange控件事件194
752ListObject控件事件196
753XMLMappedRange控件事件201
754Chart控件事件202
755工作表事件204
756图表工作表事件207
757工作簿事件208
76使Excel更智能211
77小结212
78复习问题213
第8章Word和Excel里的控件214
81本章主题214
82关于控件214
83向工具栏和菜单添加控件214
831创建工具栏按钮215
832创建菜单和菜单项220
84使用Windows Forms控件223
85向Windows Forms添加控件229
86向任务窗格添加控件235
87向Excel和Word文档添加控件237
871Word里的Windows Forms
控件237
872Excel里的Windows Forms
控件240
873添加数据绑定控件241
874向文档添加自定义控件244
875控件类型246
876在运行时添加控件246
877文档上的Windows Forms
控件的功能251
88小结252
89复习问题252
第9章Word和Excel里的
智能标记254
91本章主题254
92什么是智能标记254
93用VSTO创建Word和Excel
智能标记257
94理解智能标记的属性260
941Actions属性260
942Caption属性260
943Expressions属性260
944SmartTagType属性260
945Terms属性261
95在智能标记上执行操作261
96正则表达式介绍266
961使用正则表达式识别词组266
962识别文本模式269
97重写智能标记识别器273
971创建Word项目274
972运行代码276
973进入离线状态278
98小结279
99复习问题279
第三部分Outlook和其他内容
第10章使用VSTO为Outlook
创建插件280
101本章主题280
102使用VSTO的应用程序级别的
定制程序280
1021共享插件和VSTO插件之间
的区别281
1022Outlook插件项目模板283
1023把Outlook宏转换成VSTO
插件285
1024创建一个简单的插件287
1025Visual Studio里的智能感知289
103Outlook对象模型概述290
1031Application对象290
1032NameSpace对象291
1033Explorer对象292
1034Inspector对象292
1035Outlook文件夹292
1036Outlook项293
1037事件294
104定制Outlook里的菜单和工具栏294
105调试插件297
106使用VSTO创建的Outlook
插件的安全性300
107小结302
108复习问题302
第11章安全性和部署303
111本章主题303
112VSTO安全模型303
113部署Word和Excel解决方案306
1131客户端要求307
1132Microsoft PSS VSTO 2005
Client TroubleShooter307
1133部署模型309
1134应用程序和部署清单309
1135部署任务310
1136Public Wizard311
1137更新和回滚318
1138Microsoft Installer项目319
114部署Outlook解决方案321
115小结322
116复习问题322
第12章把VBA解决方案迁移到
VSTO323
121本章主题323
122迁移概述323
123迁移策略324
124一个Word VBA项目的简单迁移324
125一个Word VBA项目的高级迁移327
1251复制Word模板327
1252从模板移除VBA代码和
UserForm327
1253创建Windows窗体328
1254启动Windows窗体330
1255运行解决方案330
1256重新设计解决方案331
1257Bookmark视图控件331
1258使用操作窗格332
126VBA和VSTO的互操作334
127小结338
128复习问题338
第13章VSTO的高级话题339
131本章主题339
132ServerDocument概述339
133附加和分离基于文档的定制程序339
1331使用ServerDocument从文档
分离解决方案339
1332使用ServerDocument向文档
附加解决方案340
1333使用自定义文档属性向文档
附加解决方案341
134读写数据缓存342
1341缓存数据结构342
1342创建一个有缓存数据的测试
文档342
1343读取文档数据缓存344
1344运行解决方案347
135清除数据缓存349
136小结350
137复习问题351
第14章VSTO 2005 SE和2007
Microsoft Office System352
141本章主题352
142VSTO 2005 SE介绍352
1421所有发布版本里的功能353
1422VSTO 2005 SE的插件模型354
143创建插件358
144定制功能区358
1441功能区项359
1442和XML协同工作363
1443定制内置的功能区365
1444向功能区添加其他控件370
1445快速访问工具栏376
1446不受支持的功能区功能378
1447Outlook里的功能区378
145创建自定义任务窗格384
1451为PowerPoint创建插件384
1452打开和关闭自定义任务窗格386
1453管理多个Word文档上的
任务窗格387
1454把文档级别的定制程序转换成
VSTO 2005 SE插件389
1455显示多个任务窗格394
146创建自定义窗体区域395
1461创建Outlook窗体区域文件395
1462创建新的窗体区域395
1463保存窗体区域396
1464创建VSTO 2005 SE Outlook
插件项目396
1465在你的项目里内嵌窗体区域396
1466创建和注册窗体区域清单397
1467创建窗体区域注册表文件398
1468创建窗体区域启动类398
1469连接窗体区域控件400
14610连接窗体区域401
14611运行项目402
147小结403
148复习问题403
附录A创建代码段404
附录B创建Inspector CommandBar407