Word 对象模型概述

以下各部分简要描述顶级对象以及它们彼此之间如何进行交互。这些对象包括以下五种:

  • Application 对象

  • Document 对象

  • Selection 对象

  • Range 对象

  • Bookmark 对象

Visual Studio Tools for Office 还将其中的很多对象扩展为宿主项和宿主控件。这些扩展对象可在文档级项目中使用,从 Visual Studio 2008 Service Pack 1 (SP1) 开始,它们也可在 Word 2007 的应用程序级项目中使用。宿主项和宿主控件具有附加功能,如数据绑定功能和事件。有关宿主控件的更多信息,请参见 Visual Studio Tools for Office 项目中的扩展对象

Application 对象

Application 对象表示 Word 应用程序,是其他所有对象的父级。它的所有成员通常作为一个整体应用于 Word。可以使用该对象的属性和方法来控制 Word 环境。

在应用程序级外接程序项目中,您可以使用 ThisAddIn 类的 Application 字段访问 Application 对象。有关更多信息,请参见应用程序级外接程序编程

在文档级项目中,您可以使用 ThisDocument 类的 Application 属性访问 Application 对象。

Document 对象

Microsoft.Office.Interop.Word.Document 对象是 Word 编程的中枢。它表示文档及其所有内容。当您打开文档或创建新文档时,就创建了新的 Microsoft.Office.Interop.Word.Document 对象,该对象被添加到 Application 对象的 Documents 集合中。具有焦点的文档称为活动文档。它由 Application 对象的 ActiveDocument 属性表示。

Visual Studio Tools for Office 通过提供 Microsoft.Office.Tools.Word.Document 类扩展了 Microsoft.Office.Interop.Word.Document 对象。此类是一个宿主项,您可以通过它访问本机 Microsoft.Office.Interop.Word.Document 类的所有成员,并且此类还增加了附加的事件和添加托管控件及智能标记的功能。有关更多信息,请参见宿主项和宿主控件概述

当您创建文档级项目时,Visual Studio Tools for Office 会生成一个名为 ThisDocument 的类,该类派生自 Microsoft.Office.Tools.Word.Document 类。您可以从代码中使用 MeMe 关键字在 ThisDocument 类中访问 Microsoft.Office.Tools.Word.Document 类的成员,或从代码中使用 ThisDocumentThisDocument 类外访问这些成员。例如,若要选择文档中的第一个段落,请使用下面的代码。

this.Paragraphs[1].Range.Select();      

从 SP1 开始,您可以通过使用 Word 2007 的应用程序级外接程序在运行时生成 Microsoft.Office.Tools.Word.Document 宿主项。您可以使用生成的宿主项向关联的文档中添加控件和智能标记。有关更多信息,请参见 在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿

Selection 对象

Selection 对象表示当前选择的区域。在 Word 用户界面中执行某项操作(例如,对文本进行加粗)时,应首先选择或突出显示文本,然后应用格式设置。Selection 对象始终存在于文档中。如果未选中任何对象,它表示插入点。此外,所选内容可以包含多个不连续的文本块。

Range 对象

Range 对象表示文档中的一个连续的区域,由一个起始字符位置和一个结束字符位置定义。Range 对象的数量并不局限于一个。您可以在同一文档中定义多个 Range 对象。Range 对象具有下面的特性:

  • 它的组成成分可以是单独的插入点,也可以是一个文本范围或整个文档。

  • 它包含非打印字符,例如空格、制表符和段落标记。

  • 它可以是当前所选内容所表示的区域,也可以表示当前所选内容之外的区域。

  • 与始终可见的所选内容不同,它在文档中是不可见的。

  • 它不随文档保存,仅存在于代码运行期间。

在向一个范围的末尾插入文本时,Word 会自动扩展该范围以包含插入的文本。

内容控件对象

利用 Microsoft.Office.Interop.Word.ContentControl 可以控制输入和文本以及 Word 2007 文档中其他类型内容的表示形式。Microsoft.Office.Interop.Word.ContentControl 可以显示若干针对在 Word 文档中使用而优化的不同类型的 UI,比如多格式文本控件、日期选择器或组合框。您也可以使用 Microsoft.Office.Interop.Word.ContentControl 防止用户编辑文档或模板的各个部分。

Visual Studio Tools for Office 将 Microsoft.Office.Interop.Word.ContentControl 对象扩展为若干不同的宿主控件。尽管 Microsoft.Office.Interop.Word.ContentControl 对象可以显示任何可用于内容控件的不同类型的 UI,但 Visual Studio Tools for Office 为每种类型的 UI 提供了不同的类。例如,您可以使用 RichTextContentControl 来创建多格式文本控件,或者可以使用 DatePickerContentControl 来创建日期选择器。这些宿主控件的行为与本机 Microsoft.Office.Interop.Word.ContentControl 类似,但它们具有附加事件和数据绑定功能。

有关更多信息,请参见内容控件

Bookmark 对象

Microsoft.Office.Interop.Word.Bookmark 对象表示文档中同时具有起始位置和结束位置的连续区域。书签用于在文档中标记一个位置,或者用作文档中的文本容器。Microsoft.Office.Interop.Word.Bookmark 对象可以小到只有一个插入点,也可以大到整篇文档。Microsoft.Office.Interop.Word.BookmarkRange 对象的不同之处在于它具有以下特点:

  • 您可以在设计时命名书签。

  • Microsoft.Office.Interop.Word.Bookmark 对象随文档一起保存,因此当代码停止运行或文档关闭时,这些对象不会被删除。

  • 书签可以隐藏或变得可见,方法是将 View 对象的 ShowBookmarks 属性设置为 falsetrue

Visual Studio Tools for Office 将 Microsoft.Office.Interop.Word.Bookmark 对象扩展为一个宿主控件。Microsoft.Office.Tools.Word.Bookmark 控件与本机 Microsoft.Office.Interop.Word.Bookmark 的行为相似,但是前者具有附加事件和数据绑定功能。您可以将数据绑定到文档中的书签控件,绑定方法与将数据绑定到 Windows 窗体上的文本框控件的方法相同。

有关更多信息,请参见 Bookmark 控件

引文来源  Word 对象模型概述