应用程序级外接程序编程

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 应用程序级项目

Microsoft Office 版本

  • 2007 Microsoft Office system

  • Microsoft Office 2003

有关更多信息,请参见按应用程序和项目类型提供的功能

在通过创建 Visual Studio Tools for Office 外接程序扩展 Microsoft Office 应用程序时,将直接依据项目中的 ThisAddIn 类编写代码。可以使用此类执行诸如下列任务:访问 Microsoft Office 宿主应用程序的对象模型、自定义应用程序的用户界面 (UI) 以及向其他 Office 解决方案公开外接程序中的对象。

有关应用程序级外接程序和可使用 Visual Studio Tools for Office 创建的其他类型的解决方案的常规信息,请参见 Office 解决方案开发概述

在外接程序项目中编写代码

您可以在 ThisAddIn 类中开始编写外接程序代码。Visual Studio Tools for Office 将自动在外接程序项目中的 ThisAddIn.vb(Visual Basic 中)或 ThisAddIn.cs(C# 中)代码文件中生成此类。

ThisAddIn 类中有两个默认事件处理程序。若要在加载外接程序时运行代码,请将代码添加到 ThisAddIn_Startup 事件处理程序中。若要在即将卸载外接程序前运行代码,请将代码添加到 ThisAddIn_Shutdown 事件处理程序中。有关更多信息,请参见 Visual Studio Tools for Office 项目事件

ThisAddIn 类的大多数功能都派生自 AddIn 类。AddIn 提供了所有 Visual Studio Tools for Office 外接程序共享的核心功能。有关 AddIn 类的更多信息,请参见 AddIn 宿主项

访问宿主应用程序的对象模型

若要访问宿主应用程序的对象模型,请使用 ThisAddIn 类的 Application 字段。此字段返回表示宿主应用程序当前实例的对象。

下面的代码示例演示如何使用 Application 字段在 Microsoft Office Excel 外接程序中创建新工作簿。将从 ThisAddIn 类中运行此示例。

Dim newWorkbook As Excel.Workbook = Me.Application.Workbooks.Add()
Excel.Workbook newWorkbook = this.Application.Workbooks.Add(System.Type.Missing);

若要从 ThisAddIn 类以外执行相同的操作,请使用 Globals 对象访问 ThisAddIn 类。有关 Globals 对象的更多信息,请参见对 Visual Studio Tools for Office 项目中的对象的全局访问

Dim newWorkbook As Excel.Workbook = Globals.ThisAddIn.Application.Workbooks.Add()
Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add(System.Type.Missing);

下表列出了每个外接程序项目中 Application 字段的返回值的类型。

宿主应用程序

返回值类型

Microsoft Office Excel

Microsoft.Office.Interop.Excel.Application

Microsoft Office InfoPath

Microsoft.Office.Interop.InfoPath.Application

Microsoft Office Outlook

Microsoft.Office.Interop.Outlook.Application

Microsoft Office PowerPoint

Microsoft.Office.Interop.PowerPoint.Application

Microsoft Office Project

Microsoft.Office.Interop.MSProject.Application

Microsoft Office Visio

Microsoft.Office.Interop.Visio.Application

Microsoft Office Word

Microsoft.Office.Interop.Word.Application

自定义 Microsoft Office 应用程序的用户界面

您可以使用应用程序级外接程序通过编程方式自定义 Microsoft Office 应用程序的 UI。对于 Microsoft Office 2003 应用程序,可以自定义的 UI 功能包括菜单和工具栏。2007 Microsoft Office system 中的应用程序具有其他一些可自定义的 UI 功能。这些功能包括功能区、自定义任务窗格和 Outlook 窗体区域。有关更多信息,请参见 Office UI 自定义

Visual Studio Tools for Office 提供了一些设计器和类,您可以使用它们来创建自定义任务窗格、功能区自定义项以及 Outlook 窗体区域。这些设计器和类可帮助简化自定义这些功能的过程。有关更多信息,请参见自定义任务窗格概述功能区设计器创建 Outlook 窗体区域

如果要采用 Visual Studio Tools for Office 类和设计器不支持的方式自定义其中的某个功能,您也可以通过在外接程序中实现“扩展性接口”来自定义这些功能。有关更多信息,请参见 使用扩展性接口自定义 UI 功能

从 Visual Studio 2008 Service Pack 1 (SP1) 开始,还可以修改 Word 文档和 Excel 工作簿的 UI,方法是生成扩展文档和工作簿行为的宿主项。这样您就可以向文档和工作表中添加托管控件和 Visual Studio Tools for Office 智能标记。有关更多信息,请参见 在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿

从其他 Office 解决方案调用应用程序级外接程序中的代码

您可以向其他 Office 解决方案公开外接程序中的对象。如果外接程序提供了您想要使其他 Office 解决方案能够使用的服务,这一点非常有用。例如,如果某个 Microsoft Office Excel 外接程序从 Web 服务中执行财务数据计算,则其他 Office 解决方案可以通过在运行时调入该 Excel 外接程序来执行这些计算。

有关更多信息,请参见 从其他 Office 解决方案调用应用程序级外接程序中的代码

请参见

任务

演练:从 VBA 中调用应用程序级外接程序中的代码

如何:创建 Visual Studio Tools for Office 项目

概念

开发 Office 解决方案

AddIn 宿主项

在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿

从其他 Office 解决方案调用应用程序级外接程序中的代码

使用扩展性接口自定义 UI 功能

应用程序级外接程序的体系结构