在 Visual Studio 中开发 Word 解决方案时,可以与 Word 对象模型进行交互。 此对象模型由 Word 的主互作程序集中提供的类和接口组成,并在命名空间中 Microsoft.Office.Interop.Word 定义。
适用于: 本主题中的信息适用于 Word 的文档级项目和 VSTO 外接程序项目。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能。
本主题简要概述了 Word 对象模型。 有关可以了解有关整个 Word 对象模型的详细信息的资源,请参阅 “使用 Word 对象模型”文档。
有关使用 Word 对象模型执行特定任务的信息,请参阅以下主题:
了解 Word 对象模型
Word 提供了数百个可以与之交互的对象。 这些对象组织在紧跟用户界面的层次结构中。 层次结构的顶部是 Application 对象。 此对象表示 Word 的当前实例。 该Application对象包含 、DocumentSelection和BookmarkRange对象。 每个对象都有许多方法和属性,你可以通过访问它们来对对象进行操作并与之交互。
下图显示了 Word 对象模型的层次结构中这些对象的一个视图。
乍一看,物体似乎重叠。 例如,对象DocumentSelection是对象的两个成员Application,但对象Document也是该对象的成员Selection。 对象DocumentSelection包含Bookmark对象和Range对象。 重叠存在,因为可以通过多种方式访问同一类型的对象。 例如,你对一个对象 Range 应用格式;但你可能想要访问当前选定区域、特定段落、某个节或整个文档的范围。
以下各节简要介绍了顶级对象及其相互交互方式。 这些对象包括以下五个对象:
应用程序对象
Document 对象
Selection 对象
Range 对象
书签对象
除了 Word 对象模型之外,Visual Studio 中的 Office 项目还提供 主机项 和 主机控件 ,用于扩展 Word 对象模型中的某些对象。 宿主项和主机控件的行为类似于它们扩展的 Word 对象,但它们也有其他功能,如数据绑定功能和额外事件。 有关详细信息,请参阅使用扩展对象自动执行 Word和主机项和主机控件概述。
应用程序对象
该 Application 对象表示 Word 应用程序,并且是所有其他对象的父对象。 其成员通常适用于整个 Microsoft Word。 可以使用其属性和方法来控制 Word 环境。
在 VSTO 外接程序项目中,可以通过ThisAddIn类的Application字段访问Application对象。 有关详细信息,请参阅 程序 VSTO 外接程序。
在文档级项目中,可以使用ThisDocument类的Application属性来访问Application对象。
Document 对象
该 Document 对象是对 Word 进行编程的核心。 它表示文档及其所有内容。 打开文档或创建新文档时,将创建一个新 Document 对象,该对象将添加到 Documents 对象的集合 Application 中。 具有焦点的文档称为活动文档。 它由 ActiveDocument 对象的属性 Application 表示。
Visual Studio 中的 Office 开发工具通过提供Document类型来扩展Document对象。 此类型是一个 宿主项 ,可用于访问对象的所有功能 Document ,并添加其他事件以及添加托管控件的功能。
创建文档级项目时,可以使用项目中生成的Document类访问ThisDocument成员。 可以通过类中的代码使用关键词Me或this来访问Document,或通过类外部的代码使用Globals.ThisDocument来访问ThisDocument。 有关详细信息,请参阅 程序文档级自定义。 例如,若要选择文档中的第一段,请使用以下代码。
在 VSTO 外接程序项目中,可以在运行时生成 Document 主机项。 可以使用生成的主机项将控件添加到关联的文档。 有关详细信息,请参阅 运行时在 VSTO 外接程序中扩展 Word 文档和 Excel 工作簿。
Selection 对象
该 Selection 对象表示当前选定的区域。 在 Word 用户界面中,您可以执行诸如加粗文字之类的操作,例如选择或突出显示文字,然后应用格式。 对象 Selection 始终存在于文档中。 如果未选择任何内容,则表示插入点。 此外,所选内容可以包含多个不连续的文本块。
Range 对象
该 Range 对象表示文档中的连续区域,由起始字符位置和结束字符位置定义。 不限于单个 Range 对象。 可以在同一文档中定义多个 Range 对象。 对象 Range 具有以下特征:
它可以单独包含插入点、文本范围或整个文档。
它包括非打印字符,如空格、制表符和段落标记。
它可以是当前所选内容所表示的区域,也可以表示不同于当前所选区域的区域。
在文档中它是不可见的,与选择对象不同,选择对象始终可见。
它不与文档一起保存,并且仅在代码运行时存在。
在区域末尾插入文本时,Word 会自动展开该区域以包含插入的文本。
内容控件对象
ContentControl 提供了一种方法,让您可以控制 Word 文档中文本和其他类型内容的输入和显示。 A ContentControl 可以显示多种不同类型的 UI,这些 UI 已针对 Word 文档中的使用进行了优化,例如 RTF 控件、日期选取器或组合框。 还可以使用 a ContentControl 来防止用户编辑文档或模板的部分。
Visual Studio 将 ContentControl 对象扩展到多个不同的主机控件。 ContentControl尽管该对象可以显示可用于内容控件的任何不同类型的 UI,但 Visual Studio 为每个内容控件提供不同的类型。 例如,您可以使用RichTextContentControl来创建富文本控件,或者使用DatePickerContentControl来创建日期选取器。 这些主机控件的行为类似于本机 ContentControl控件,但它们具有其他事件和数据绑定功能。 有关详细信息,请参阅 内容控件。
书签对象
该 Bookmark 对象表示文档中的连续区域,同时具有起始位置和结束位置。 可以使用书签标记文档中的位置,或作为文档中用于承载文本的容器。 对象 Bookmark 可以包含插入点,也可以与整个文档一样大。 一个 Bookmark 具有以下特征,这些特征将它与对象分开 Range :
可以在设计时命名书签。
Bookmark 对象随文档一起保存,因此在代码停止运行或文档关闭时不会删除。
通过将对象的属性ShowBookmarks设置为 View 或 true,可以隐藏书签或使书签可见。
Visual Studio 通过提供Bookmark主机控件来扩展Bookmark对象。 主机 Bookmark 控件的行为类似于本机 Bookmark控件,但具有其他事件和数据绑定功能。 可以将数据绑定到文档中的书签控件,就像将数据绑定到 Windows 窗体上的文本框控件一样。 有关详细信息,请参阅 书签控件。
使用 Word 对象模型文档
有关 Word 对象模型的完整信息,可以参考 Word 主互操作程序集(PIA)和 Visual Basic for Applications(VBA)对象模型参考。
主要互操作程序集引用
Word PIA 参考文档描述了 Word 的主互操作程序集中的类型。 本文档可从以下位置获取: Word 2010 主互作程序集参考。
有关 Word PIA 设计的详细信息,例如 PIA 中的类和接口之间的差异以及如何实现 PIA 中的事件,请参阅 Office 主互作程序集中的类和接口概述。
VBA 对象模型参考
VBA 对象模型参考文档记录了 Word 对象模型如何向 VBA 代码公开。 有关详细信息,请参阅 Word 2010 对象模型参考。
VBA 对象模型引用中的所有对象和成员都对应于 Word PIA 中的类型和成员。 例如,VBA 对象模型引用中的 Document 对象对应于 Document Word PIA 中的对象。 尽管 VBA 对象模型引用为大多数属性、方法和事件提供了代码示例,但如果要在使用 Visual Studio 创建的 Word 项目中使用这些代码,则必须将此引用中的 VBA 代码转换为 Visual Basic 或 Visual C# 。