图书前言

前  言

VB.NET是由微软公司的.NET框架实现的面向对象的计算机编程语言,因此它可以完全访问.NET框架中的所有库。

微软公司推出的VSTO开发技术允许开发人员使用VB.NET、C#创建Office解决方案,可以使用VB.NET开发面向Office的COM加载项,也可以在Excel工作表、Word文档中加入VB.NET控件。

对于VB.NET,很多人都会有一个疑问:VB.NET语言和哪一门语言最相似?事实确实如此,这是一个很难回答的问题。

众所周知,VBA与VB6的语法几乎是完全相同的,唯一不同的是,Office VBA默认已添加Office组件的引用,可以直接访问Office对象模型。VB6是一门通用可视化编程语言,也可以访问Office对象。

VB.NET语言是VB系列语言的最高、最新版本,实现很多功能都比VB6简单、快速。例如生成一个新的GUID、计算MD5值,VB.NET只需要一行代码。VB.NET保留了VB6中的关键字和程序结构。例如仍然使用Dim声明变量,使用MsgBox弹出一个对话框,使用Sub和End Sub构成一个过程。

如果从命名空间和对象的角度比较,VB.NET和C#更为相似,例如VB.NET的一个类中包含一个过程和一个函数。

Imports System.Windows.Forms

Public Class Form1

 Private Sub MyProc()

MessageBox.Show(MyAge(New DateTime(1981, 7, 15)))End Sub

 Public Function MyAge(BirthDay As DateTime) As Integer

Return Year(Today) - Year(BirthDay)

End Function 

End Class

对应的C#版本为:

using System.Windows.Forms;

public class Form1

{ private void MyProc()

{ MessageBox.Show(MyAge(new DateTime(1981, 7, 15)));}

public int MyAge(DateTime BirthDay)

{

 return DateTime.Year(DateTime.Today) - DateTime.Year(BirthDay);

}

}

两种语言的主要差别有两处:一是写法顺序,C#语言的类型名称不仅写在变量的前面,而且不使用As关键字;二是C#一律使用大括号作为类、函数的起始和结束标记,而不使用End关键字。

因此,无论原来是从事VBA/VB6开发的人员,还是从事C#开发的人员,只要找准规律就可以快速切换到VB.NET编程。

xll加载项是一种外接二进制插件,可以通过Excel的加载项对话框加载,并且在工作表公式中使用xll加载项中的自定义函数。xll加载项具有速度快、安全性高、无须安装部署等优势,还可以为自定义函数提供参数说明、智能提示。但这类插件通常用C语言或C++语言开发,难度非常大,对开发者的要求很高。

Excel-DNA技术可以使用.NET语言开发xll加载项,在Visual Studio中创建类库项目,添加若干引用即可生成xll加载项。Excel-DNA项目可以像VSTO项目一样,加入customUI和自定义任务窗格等其他元素,如果就Excel这一组件而言,Excel-DNA与VSTO相比毫不逊色。

本书首先让读者熟悉Visual Studio集成开发环境,掌握VB.NET桌面应用程序的开发流程,然后讲述VSTO开发Office外接程序、文档自定义项,最后讲述Excel-DNA开发xll加载项。

本书内容和组织结构

本书分为八部分,共20章。

第1章和第2章介绍Office开发的方法和路线、VB.NET语言概述、VSTO开发环境的选择、Visual Studio 2017的安装和维护、编程开发环境的使用技巧等。

第3~5章介绍VB.NET语言基础、控制台应用程序的创建和调试、窗体的创建和显示、控件的常用属性、方法和事件等。

第6章和第7章介绍VB.NET编程中比较高级的技术,包括GDI+绘图技术、键值对、正则表达式、文件读写、操作注册表和进程等技术。

第8章介绍VB.NET应用程序项目中引用Office组件、以COM的形式读写Office对象的方法。该章是从纯粹的VB.NET程序向VSTO项目的过渡。

第9~14章介绍使用Visual Studio创建VSTO外接程序(COM加载项)的各个过程。涉及VSTO开发环境和运行环境的配置要求、VSTO项目中的引用和命名空间、customUI、自定义任务窗格、COM加载项和注册表、VSTO外接程序项目的打包和发布等核心技术。

第15章介绍Office文档项目的开发方法,包括文档操作窗格的创建和显示、文档中添加宿主控件的方法等。

第16章介绍使用Visual Studio 2008面向Office 2003的VSTO开发,包括外接程序、文档项目的开发方法。

第17~19章介绍Excel-DNA的开发技术,包括xll格式加载项的加载方式、xll加载项的打包、使用Visual Studio创建Excel-DNA项目、自定义函数的开发、Excel-DNA项目中的customUI和任务窗格等核心内容,这部分采用VB.NET和C#两种语言进行开发与讲解。

第20章内容包括VB.NET、VBA、C#的语言差异,VBA代码改写为C#的方法和技巧。

建议学习方法

本书第2~4章讲述VB.NET这门编程语言的基本用法和技能,第8~15章讲述VSTO项目开发的各个方面,属于必修内容,学完这些内容,读者就能够开发出完整的Office工具和插件。

对于需要进一步提高开发水平、拓宽开发范围的读者,可以继续学习本书其余章节。

本书的读者对象

高等院校的教师、学生、科研人员。

从事.NET语言开发的相关人员。

从事VBA开发、VSTO开发的职场人士。

本书开发环境

编写本书时使用的开发环境为:Windows 7(32位)+Microsoft Office 2013+Visual Studio 2017 Professional。

配套资源

本书配套资源包括:

书中涉及的所有项目实例源代码。

编程过程中用到的工具、软件。

扫描二维码可获取以上资源。

致谢

在本书的编写过程中,除了刘永富之外,参与编写的人员还有刘行、曹文丽、戴海东、刘秀兰等。另外,在本书的编写过程中难免会有疏漏之处,欢迎读者通过清华大学出版社网站www.tup.com.cn与我们联系,帮助我们改正提高。

在本书的出版过程中,得到了清华大学出版社编辑秦健的大力支持和配合,在此表示衷心感谢。另外,本书的所有编审、发行人员为本书的出版和发行付出了辛勤劳动,在此一并致谢。