前言

VSTO是指Visual Studio Tools for Office,其含义是在Visual Studio开发环境中进行Office专业开发。

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学习路线图为依据编排而成,全书共分12章。

第1章:VSTO入门概述

本书介绍的是一项程序开发技术,因此首先要让读者安装必要的程序语言和开发环境。然后讲述VSTO开发的意义和任务,以及创建和调试C#解决方案的方法与步骤。

第2章:C#语法基础

本书以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,该章列出了两种语言典型的语法差异。

本书特点

本书是目前市面上稀缺而Office开发人员急需的、Office和C#技巧完美融合的经典书籍,为了让读者快速了解和熟悉VSTO,本书第2~4章的C#代码都配备了对应的VBA代码,可以让之前从事VBA开发的读者迅速学会VSTO开发。同时本书配套资源中包括本书涉及的所有项目的源文件,以便读者加以验证和核对。另外,本书配套资源中还有与VSTO开发相关的全部有声视频教程。

本书配套资源内容说明

本书配套资源包括VSTO开发入门视频教程、本书所有示例程序、VSTO开发资源大全三大部分内容。关于本书配套资源,读者可访问vba.mahoupao.net/forum.php?mod=viewthread&tid=2407&fromuid=1进行下载。

续表

读者对象

● 职场办公人员

● 理工科类大学生、研究生

● 编程爱好者

● 培训机构的老师和学员

本书约定

书中述及的多级菜单和工具栏的图示中,鼠标单击的各级菜单或命令均放在中文方括号之中,各级之间以斜杠隔开。例如【文件/打开】表示连续单击了“文件”菜单的“打开”子菜单。

书中所有的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套件称得上是全世界最成功的办公软件,拥有非常多的用户。它之所以受到人们的青睐,有多方面的原因,但是以下几点是有目共睹的:一是功能完善而且强大;二是容易操作,用户容易学会;三是具有强大的编程开发功能。

随着计算机的发展,以往的手工操作办公软件已经不能满足现代办公的需要,因此,VBA以及VSTO开发和应用技术应运而生。本书在编写过程中,受到了众多Office开发人员的关注,他们殷切希望本书尽早出版。除了刘永富之外,参与本书编写的人员还有章晓琳、马成林、钟卓成、李四桂、何明、段留柱、高大伟、肖云、谭信章、戴海东、朱辉、徐鹏、祝磊、管洪洋、刘爱珍、王继成、汪龙、林兴龙、梁加成等。在编写过程中难免会有漏洞,欢迎读者通过清华大学出版社网站(www.tup.com.cn)与我们联系,帮助我们改正提高。

刘永富

2016年7月于北京