图书前言

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月于北京