Word 物件模型概觀
更新: 2008 年 7 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
若要開發 Microsoft Office Word 的 Visual Studio Tools for Office 方案,您可以與 Word 物件模型 (Object Model) 進行互動。這個物件模型是由 Word 的主要 Interop 組件 (Assembly) 提供的類別 (Class) 和介面組成,並且在 Microsoft.Office.Interop.Word 命名空間 (Namespace) 中定義。
本主題將說明使用 Word 物件模型的下列各方面:
了解 Word 物件模型
Visual Studio Tools for Office 專案中的擴充物件
使用 Word 物件模型文件
如需使用 Word 物件模型執行 Visual Studio Tools for Office 專案中的工作的詳細資訊,請參閱下列主題:
了解 Word 物件模型
Word 提供數百個物件,可以與您互動。這些物件的組織密切依照使用者介面的階層架構。階層架構的頂端是 Application 物件。這個物件代表目前的 Word 執行個體 (Instance)。Application 物件包含 Document、Selection、Bookmark 和 Range 物件。這其中每一個物件都有許多方法和屬性,可供您存取來管理該物件並且與它互動。
下圖顯示這些物件在 Word 物件模型階層架構中的一景。
Word 物件模型摘要
乍看之下,似乎有許多重疊。例如,Document 和 Selection 物件都是 Application 物件的成員,但是 Document 物件也是 Selection 物件的成員。Document 和 Selection 物件都包含 Bookmark 和 Range 物件。之所以會產生重疊現象,是因為有多種方式可以存取同類型的物件。例如,您可以套用格式至 Range 物件,但您想要存取的範圍可能是目前選取範圍、特定段落、章節或整個文件。
下列各節簡述最上層的物件,並描述它們彼此的互動關係。這些物件包含下列五個項目:
Application 物件
Document 物件
Selection 物件
Range 物件
Bookmark 物件
Visual Studio Tools for Office 也會將其中許多物件擴充為「主項目」(Host Item) 和「主控制項」(Host Control)。這些擴充物件可以在文件層級專案中使用,而且從 Visual Studio 2008 Service Pack 1 (SP1) 開始,也可以在 Word 2007 應用程式層級專案中使用。主項目和主控制項擁有多種額外的功能,例如資料繫結 (Data Binding) 功能和事件。如需主控制項的詳細資訊,請參閱 Visual Studio Tools for Office 專案中的擴充物件。
Application 物件
Application 物件代表 Word 應用程式,也是所有其他物件的父代 (Parent)。它的成員通常是套用至 Word 整體。您可以使用它的屬性和方法來控制 Word 環境。
在應用程式層級增益集專案中,您可以使用 ThisAddIn 類別的 Application 欄位存取 Application 物件。如需詳細資訊,請參閱應用程式層級增益集程式設計。
在文件層級專案中,您可以使用 ThisDocument 類別的 Application 屬性存取 Application 物件。
Document 物件
Microsoft.Office.Interop.Word.Document 物件是 Word 程式設計的核心。它代表文件和其所有內容。開啟文件或建立新文件時,會建立新的 Microsoft.Office.Interop.Word.Document 物件,該物件會加入至 Application 物件的 Documents 集合。具有焦點 (Focus) 的文件稱為現用文件。它是由 Application 物件的 ActiveDocument 屬性所代表。
Visual Studio Tools for Office 會藉由提供 Microsoft.Office.Tools.Word.Document 類別來擴充 Microsoft.Office.Interop.Word.Document 物件。這個類別是「主項目」,可讓您存取原生 Microsoft.Office.Interop.Word.Document 類別的所有成員,也可以加入事件,並具有加入 Managed 控制項和智慧標籤的能力。如需詳細資訊,請參閱主項目和主控制項概觀。
當您建立文件層級專案時,Visual Studio Tools for Office 會產生名為 ThisDocument 的類別,這個類別衍生自 Microsoft.Office.Tools.Word.Document 類別。您可以以兩種方式存取 Microsoft.Office.Tools.Word.Document 類別的成員,一種是在 ThisDocument 類別中的程式碼使用 Me 或 this 關鍵字,另一種是在 ThisDocument 類別外的程式碼使用的 Globals.ThisDocument。例如,若要選取文件中的第一段,請使用下列程式碼。
Me.Paragraphs(1).Range.Select()
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,例如 Rich Text 控制項、日期選擇器或下拉式方塊。您也可以使用 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 建立 Rich Text 控制項,或者可以使用 DatePickerContentControl 建立日期選擇器。這些主控制項的行為如同原生 Microsoft.Office.Interop.Word.ContentControl,但是具有額外的事件和資料繫結功能。
如需詳細資訊,請參閱內容控制項。
Bookmark 物件
Microsoft.Office.Interop.Word.Bookmark 物件代表文件中的連續區域,有開頭位置也有結束位置。您可以使用書籤在文件中標記位置,或是在文件中做為文字容器。Microsoft.Office.Interop.Word.Bookmark 物件可以由插入點組成,也可以與整份文件一樣大。Microsoft.Office.Interop.Word.Bookmark 具有下列特性,而與 Range 物件有所區別:
您可以在設計階段為書籤命名。
Microsoft.Office.Interop.Word.Bookmark 物件是和文件一起儲存,所以在程式碼停止執行或文件關閉時也不會遭刪除。
透過將 View 物件的 ShowBookmarks 屬性設定為 false 或 true,可以隱藏或顯示書籤。
Visual Studio Tools for Office 會將 Microsoft.Office.Interop.Word.Bookmark 物件擴充為一個主控制項。Microsoft.Office.Tools.Word.Bookmark 控制項的行為方式就像原生 Microsoft.Office.Interop.Word.Bookmark,但另外也具有事件和資料繫結功能。您可以將資料繫結至文件上的書籤控制項,方式與將資料繫結至 Windows Form 上的文字方塊控制項相同。
如需詳細資訊,請參閱書籤控制項。
Visual Studio Tools for Office 專案中的擴充物件
了解 Word 物件模型所提供的原生物件與 Visual Studio Tools for Office 所提供的擴充物件 (主項目和主控制項) 之間的差異非常重要,因為這兩種類型的物件都可以供文件層級專案和 Word 2007 應用程式層級專案使用。如需詳細資訊,請參閱主項目和主控制項概觀。
這些差異可以分為下列四個方面:
設計階段。在設計階段將任何擴充 Word 控制項加入文件層級自訂時,這些控制項會自動建立為主控制項。例如,在設計工具中將書籤加入文件,就會自動產生程式碼來將書籤擴充為 Microsoft.Office.Tools.Word.Bookmark 控制項。
執行階段。在執行階段不會自動建立主項目。如果使用 Add 方法在執行階段加入文件,文件就會是 Microsoft.Office.Interop.Word.Document 物件,但不具有 Microsoft.Office.Tools.Word.Document 主項目提供的其他功能。您可以使用 Visual Studio Tools for Office 所提供的 Helper 方法,以程式設計的方式將主控制項加入至文件中。如需詳細資訊,請參閱主項目和主控制項的程式設計限制。
注意事項: 從 SP1 開始,您可以使用 Word 2007 應用程式層級的增益集,在執行階段建立 Microsoft.Office.Tools.Word.Document 主項目。如需詳細資訊,請參閱在應用程式層級增益集的執行階段中擴充 Word 文件和 Excel 活頁簿。
新功能。主項目和主控制項都有原生物件所沒有的功能。主項目可以做為 Managed 控制項的容器,而且擁有額外的事件。主控制項可以繫結至資料,而且也有額外的事件。
型別。原生 Word 物件會使用 Word 主要 Interop 組件之 Microsoft.Office.Interop.Word 命名空間中定義的型別,而主項目和主控制項則會使用 Visual Studio Tools for Office Runtime 之 Microsoft.Office.Tools.Word 命名空間中定義的型別。
使用 Word 物件模型文件
如需您可以在 Word 物件模型中使用之類別的詳細資訊,請參閱下列文件:
第一個連結提供 Word 主要 Interop 組件中之類別和介面的詳細資訊。其他連結則提供 Word 物件模型公開 (Expose) 給 Visual Basic for Application (VBA) 程式碼時的詳細資訊。對於使用 Visual Studio Tools for Office 的開發人員來說,每組文件都各有優缺點。
主要 Interop 組件參考
這份文件將說明 Word 主要 Interop 組件中所有可以在 Visual Studio Tools for Office 專案內使用的型別。但是,這份文件有下列缺點:
只說明 Word 2003 主要 Interop 組件中的型別。如需 Word 2007 主要 Interop 組件中之新型別和成員的說明,您必須參照 Word 2007 的 VBA 參考。
目前不提供任何程式碼範例。
VBA 參考
VBA 參考中的所有物件和成員都對應至主要 Interop 組件中供您用在 Visual Studio Tools for Office 專案中的類別和成員。例如,Word VBA 文件內的 Document 物件就會對應至主要 Interop 組件中的 Microsoft.Office.Interop.Word.Document 類別。
VBA 參考有下列優點:
同時記錄 Word 2007 和 Word 2003 的物件模型。
提供大多數成員的程式碼範例。
VBA 參考有下列缺點:
- 只提供 VBA 的語法和程式碼範例。若要在 Visual Studio Tools for Office 專案中使用程式碼範例,您必須將 VBA 程式碼轉譯為 Visual Basic 或 Visual C#。
主要 Interop 組件中的其他型別
主要 Interop 組件包含許多不適用於 VBA 的類型。這些額外型別的目的在協助將 Word 的 COM 架構物件模型轉譯為 Managed 程式碼,不適合直接在程式碼中使用。
如需詳細資訊,請參閱 Overview of Classes and Interfaces in the Office Primary Interop Assemblies。
請參閱
概念
參考
其他資源
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2008 年 7 月 |
加入有關在應用程式層級增益集中建立 Document 主項目的資訊。 |
SP1 功能變更。 |