VSTO是指Visual Studio Tools for Offi ce,其含义是在Visual Studio开发环境中进行Offi ce
专业开发。
Visual Studio是目前最流行的Windows平台应用程序的集成开发环境。VSTO是VBA
的替代,使得开发Office应用程序更加简单,并且用VSTO来开发Office应用程序可以使用
Visual Studio开发环境中的众多功能。
VSTO是一套用于创建自定义Office应用程序的Visual Studio工具包,可以用Visual Basic或者Visual C#扩展Office应用程序(例如Word、Excel、PowerPoint和Outlook)。正
是由于VSTO具有诸多优势,吸引了越来越多的人开始转入研究VSTO开发,但是到目前
为止,国内还没有一本比较适合初学者的入门教材,网络上查到的相关知识点也比较片
面。本书是国内第一部关于VSTO开发Office的经典书籍,作者根据自己的开发经验,将开
发过程中的关键技术和要点都融入本书。全书共12章,作者从读者的角度考虑,编排了从
Visual Studio的安装、C#语言入门,一直到创建第一个完整的VSTO项目,基本是手把手地
告诉读者每一个环节。读者阅读本书后,可以自行开发完整的VSTO项目,并制作成可以
分发的安装包。最重要的是,通过本入门教程的学习,能让读者增强信心,产生进一步深
入研究和探索VSTO的兴趣。
也许很多读者朋友看到诸如Visual Studio、C#这样的字眼望而生畏,其实VSTO并没有
想象的那么难,只要按照本教程按部就班学习,结合视频教程的讲解,很快就能掌握这项
开发技术。
VSTO学习路线图
对于VSTO的初学者,可以按照如下的路线图进行系统学习。如果是已经具有Visual Studio和C#基础的读者,则可以直接从第三阶段学起。
VSTO 开发入门教程
第一阶段:熟悉Visual Studio编程环境
? 理解VSTO的概念
? 安装Visual Studio
? 熟悉解决方案和项目文件夹
第二阶段:熟悉C#语言
? 创建C#窗体应用程序、窗体与常用控件的使用
? C#语法基础(变量、控制语句、不同数据类型的转换等)
? 程序代码调试、错误处理
? 使用类
第三阶段:C#操作和控制Excel对象
? 熟悉Excel对象模型,Excel对象的常用属性、方法和事件
? 加强从VBA代码向C#代码迁移的能力
第四阶段:界面设计部分
? 定制功能区:使用功能区设计器或使用XML代码,理解
Custom UI机制
? 任务窗格:任务窗格中控件和用户控件的添加
? 创建文档自定义项,使用文档操作窗格
? 自定义工具栏
第五阶段:VSTO项目分发与安装程序的制作
? 使用Advanced Installer
其他知识点
? 使用C#制作Excel自定义函数(UDF)
? 创建Word、PPT等组件的VSTO项目
VSTO课程学习路线图
本书内容
本书内容以VSTO学习路线图为依据编排而成,全书共分12章。
第1章:VSTO入门概述
本书介绍的是一项程序开发技术,因此首先要让读者安装必要的程序语言和开发环
境。然后讲述VSTO开发的意义和任务,以及创建和调试C#解决方案的方法与步骤。
第2章:C#语法基础 III
本书以C#为开发语言,因此读者需要掌握一定程度的C#语法基础。该章介绍了变量的
声明和赋值、流程控制与类的使用。
第3章:C#进阶技术
该章讲述了C#窗体与控件的相关技术,以及像正则表达式、字典等高级对象的用法,
目的是让读者在开发过程中,能够熟练应用这些高级对象去处理实际问题。
第4章:C#操作Excel对象
前面3章讲述的是纯粹的C#语言,而从这一章开始,讲述如何使用C#操作和控制Office
对象,该章以Excel为例,介绍了Excel的应用程序、工作簿、工作表、单元格区域等对象
的成员。
第5章:创建Office外接程序
VSTO开发的目的旨在创建Office外接程序(即COM加载项)。该章介绍了COM加载
项的工作原理和开发基本步骤。
第6章:自定义Office功能区,第7章:自定义任务窗格
第6章和第7章分别介绍了VSTO开发的重点,一般来说,创建一个Office外接程序,界
面定制是非常必要的,为此本书在这两章里详尽地介绍了功能区的自定义技术和自定义窗
格的设计方法。
第8章:自定义工具栏
Office工具栏是Office组件中很重要的一个界面对象,为此本书通过典型的实例,讲述
了工具栏和控件的自定义方法。
第9章:VSTO外接程序的部署分发
VSTO开发的成品,一般需要能够在其他计算机上正常使用,为此,该章介绍了使用
Advanced Installer软件来创建VSTO项目的安装程序。
第10章:VSTO开发Office文档
文档自定义开发是VSTO另一类型的项目。该项目允许自定义文档,可以向文档中加
入C#控件,以及创建和控制文档窗格。
第11章:VSTO开发资源大全
“工欲善其事,必先利其器”,为了能够驾轻就熟地进行VSTO开发,还需要使用其
他一些工具的辅助,为此,该章介绍了典型工具的安装和使用技巧。
第12章:C#与VB/VBA语言的差异对比
考虑到很多读者是从VBA转过来的,对VBA的语法和对象模型更为熟悉,为了能够帮
助读者更快地从VBA转入VSTO,该章列出了两种语言典型的语法差异。
VSTO 开发入门教程
本书特点
本书是目前市面上稀缺而Office开发人员急需的、Office和C#技巧完美融合的经典书
籍,为了让读者快速了解和熟悉VSTO,本书第2~4章的C#代码都配备了对应的VBA代码,
可以让之前从事VBA开发的读者迅速学会VSTO开发。同时本书配套资源中包括本书涉及
的所有项目的源文件,以便读者加以验证和核对。另外,本书配套资源中还有与VSTO开
发相关的全部有声视频教程。
本书配套资源内容说明
本书配套资源包括VSTO开发入门视频教程、本书所有示例程序、VSTO开发资源大全
三大部分内容。关于本书配套资源,读者可访问http://vba.mahoupao.net/forum.php?mod=vie
wthread&tid=2407&fromuid=1进行下载。
大分类文件名对应章节或描述
VSTO开发
入门视频教程
VSTO概述.wmv 第1章
C#语法基础.wmv 第2章
类的创建和使用.wmv 2.12节
窗体和控件的设计技术.wmv 3.7节
C#操作Excel对象.wmv 第4章
创建Office外接程序.wmv 第5章
使用Ribbon设计器自定义Office功能区.wmv 6.4节
使用XML自定义Office功能区.wmv 6.5节
自定义任务窗格的设计.wmv 第7章
VSTO外接程序的打包.wmv 第9章
VSTO开发Office文档-文档操作窗格.wmv 第10章
示例程序
ConsoleApplication20160629 1.2.1节
ExcelAddIn20160514 6.4节
ExcelAddIn20160515 6.5节
ExcelAddIn20160516 7.2节
ExcelAddIn20160517 8.2.1节
ExcelWorkbook20160519 10.3节
Solution20160705 1.4节
UDF20160521 4.9.1节
VSTOBOOK-C# 第2章
VSTOBOOK-VB 第2章
WindowsFormsApplication20160522 4.2节
WindowsFormsApplication20160523 3.4节
大分类文件名对应章节或描述
示例程序
WindowsFormsApplication20160524 3.5.4节
WindowsFormsApplication20160525 3.6节
WindowsFormsApplication20160526 3.7节
WindowsFormsApplication20160527 3.7.9节
WindowsFormsApplication20160528 3.8节
WindowsFormsApplication20160606 2.2节
WindowsFormsApplication20160625 2.12节
WindowsFormsApplication20160629 1.2.2节
VSTO开发
资源大全
OfficeCommandbarDesigner20160709.rar
11.1节
OfficeCommandbarViewer20160709.rar
FaceIDs_V2_20160709.xls
FaceIDs_V2_20160709.doc
Office2010ControlIDs.rar
11.2节
imageMso7345.xlsm
OfficeCustomUIEditorSetup.msi
RibbonXMLEditor20160709.rar
ribbon回调函数大全.xlsm
UseAPI.rar 3.8节
VBE2014_Setup_20160709
11.3节
VisualStudioAddin2016Setup.exe
读者对象
● 职场办公人员
● 理工科类大学生、研究生
● 编程爱好者
● 培训机构的老师和学员
本书约定
书中述及的多级菜单和工具栏的图示中,鼠标单击的各级菜单或命令均放在中文方括
号之中,各级之间以斜杠隔开。例如【文件/打开】表示连续单击了“文件”菜单的“打
续表
VSTO 开发入门教程
开”子菜单。
书中所有的VBA和C#代码段,代码左侧均有行号,这些行号只是为了便于讲解,并不
属于代码部分。
读者服务
为了方便本书内容答疑,读者朋友可加入VBA/VSTO开发QQ群:61840693,也可
以在VBA/VSTO论坛(http://vba.mahoupao.net/forum.php)发帖,还可以直接给作者发
Email:lyflyf715@sina.com。无论哪一种方式,作者将竭诚为您服务。
如果要进一步学习Office、VBA、VSTO等学科的视频课程,读者可在51CTO学院搜索
作者主讲的相关课程:http://edu.51cto.com/user/user_id-6673733.html。
致谢
感谢刘爱珍、儒道佛潘淳、西西老师、张杰、闻启学等朋友以及兄长刘永和在本书编
写过程中给予的无私帮助和鼓励。
本书在出版过程中,得到了清华大学出版社策划编辑秦健先生的大力支持和配合,在
此表示衷心感谢。另外,本书所有的编审、发行人员为本书的出版和发行付出了辛勤劳
动,在此一并致谢。
特别说明
本书编写时所用的VSTO开发环境如下:
● 操作系统:Windows 7(32bit)
● Office:Office 2010完整版
● Visual Studio:Visual Studio 2012
● 开发语言:C#
读者可以根据自身条件适当调整。
另外,本书涉及的所有VSTO示例,均以Excel 2010为开发对象,对于其他Office组件
的开发,过程非常类似,读者可以在Excel开发的基础上自行探索。
致读者
微软Office套件称得上是全世界最成功的办公软件,拥有非常多的用户。它之所以受
到人们的青睐,有多方面的原因,但是以下几点是有目共睹的:一是功能完善而且强大;
二是容易操作,用户容易学会;三是具有强大的编程开发功能。 VII
随着计算机的发展,以往的手工操作办公软件已经不能满足现代办公的需要,因此,
VBA以及VSTO开发和应用技术应运而生。本书在编写过程中,受到了众多Office开发人
员的关注,他们殷切希望本书尽早出版。除了刘永富之外,参与本书编写的人员还有章晓
琳、马成林、钟卓成、李四桂、何明、段留柱、高大伟、肖云、谭信章、戴海东、朱辉、
徐鹏、祝磊、管洪洋、刘爱珍、王继成、汪龙、林兴龙、梁加成等。在编写过程中难免
会有漏洞,欢迎读者通过清华大学出版社网站(www.tup.com.cn)与我们联系,帮助我们
改正提高。
刘永富
2016年7月于北京
