Word オブジェクトモデルの概要Word object model overview

Visual Studio で Word ソリューションを開発するときは、Word オブジェクト モデルと対話します。When you develop Word solutions in Visual Studio, you interact with the Word object model. このオブジェクト モデルは、Word のプライマリ相互運用機能アセンブリで提供されるクラスとインターフェイスで構成されています。これらのクラスとインターフェイスは Microsoft.Office.Interop.Word 名前空間に定義されています。This object model consists of classes and interfaces that are provided in the primary interop assembly for Word, and are defined in the Microsoft.Office.Interop.Word namespace.

適用対象: このトピックの情報は、ドキュメントに適用されます-レベルのプロジェクトおよび VSTO 追加-の Word プロジェクトでします。Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Word. 詳細については、「Office アプリケーションおよびプロジェクトの種類で使用できる機能」を参照してください。For more information, see Features available by Office application and project type.

ここでは、Word オブジェクト モデルの概要を簡単に説明します。This topic provides a brief overview of the Word object model. Word オブジェクトモデル全体の詳細については、「 word オブジェクトモデルのドキュメントを使用する」を参照してください。For resources where you can learn more about the entire Word object model, see Use the Word object model documentation.

Word オブジェクト モデルを使用して特定のタスクを実行する方法については、次のトピックを参照してください。For information about using the Word object model to perform specific tasks, see the following topics:

Word オブジェクトモデルについてUnderstand the Word object model

Word では、何百ものオブジェクトが操作対象になります。Word provides hundreds of objects with which you can interact. これらのオブジェクトは、ユーザー インターフェイスとほぼ同様の階層形式で編成されています。These objects are organized in a hierarchy that closely follows the user interface. 階層の最上位には、 Application オブジェクトがあります。At the top of the hierarchy is the Application object. このオブジェクトは、Word の現在のインスタンスを表します。This object represents the current instance of Word. Application オブジェクトには、 DocumentSelectionBookmark、および Range オブジェクトが含まれています。The Application object contains the Document, Selection, Bookmark, and Range objects. これらの各オブジェクトには数多くのメソッドとプロパティがあり、それらにアクセスしてオブジェクトを処理したり、オブジェクトと対話したりできます。Each of these objects has many methods and properties that you can access to manipulate and interact with the object.

次の図は、これらのオブジェクトを Word オブジェクト モデルの階層で一元的に示したものです。The following illustration shows one view of these objects in the hierarchy of the Word object model.

Word オブジェクトモデルグラフィックWord Object Model graphic

一見すると、オブジェクトが重複しているように見えます。At first glance, objects appear to overlap. たとえば、 Document オブジェクトと Selection オブジェクトは両方とも Application オブジェクトのメンバーですが、 Document オブジェクトは Selection オブジェクトのメンバーでもあります。For example, the Document and Selection objects are both members of the Application object, but the Document object is also a member of the Selection object. Document オブジェクトと Selection オブジェクトの両方に、 Bookmark オブジェクトと Range オブジェクトが含まれています。Both the Document and Selection objects contain Bookmark and Range objects. このような重複は、同じ型のオブジェクトにアクセスする方法が複数存在するために生じます。The overlap exists because there are multiple ways you can access the same type of object. たとえば、 Range オブジェクトに書式を適用するときにも、現在の選択範囲、特定の段落、セクション、または文書全体を範囲としてアクセスしたいことがあります。For example, you apply formatting to a Range object; but you may want to access the range of the current selection, of a particular paragraph, of a section, or of the entire document.

この後のセクションでは、最上位レベルのオブジェクトとそれらの相互関係について、簡単に説明します。The following sections briefly describe the top-level objects and how they interact with each other. これらのオブジェクトには次の 5 つが含まれます。These objects include the following five:

  • Application オブジェクトApplication object

  • Document オブジェクトDocument object

  • Selection オブジェクトSelection object

  • Range オブジェクトRange object

  • Bookmark オブジェクトBookmark object

    Visual Studio の Office プロジェクトには、Word オブジェクト モデルだけでなく、Word オブジェクト モデルの一部のオブジェクトを拡張する ホスト項目ホスト コントロール が用意されています。In addition to the Word object model, Office projects in Visual Studio provide host items and host controls that extend some objects in the Word object model. ホスト項目とホスト コントロールは、拡張元の Word オブジェクトと同様に動作しますが、データ バインディング機能や付加的なイベントなどの追加機能も備えています。Host items and host controls behave like the Word objects they extend, but they also have additional functionality such as data-binding capabilities and extra events. 詳細については、「拡張オブジェクトを使用して Word を自動化する」および「ホスト項目とホストコントロールの概要」を参照してください。For more information, see Automate Word by using extended objects and Host items and host controls overview.

Application オブジェクトApplication object

Application オブジェクトは Word アプリケーションを表し、他のすべてのオブジェクトの親になります。The Application object represents the Word application, and is the parent of all of the other objects. そのメンバーは、通常、Word 全体に適用されます。Its members usually apply to Word as a whole. このオブジェクトのプロパティとメソッドを使用して、Word の環境を制御できます。You can use its properties and methods to control the Word environment.

VSTO アドイン プロジェクトで Application オブジェクトにアクセスするには、 Application クラスの ThisAddIn フィールドを使用します。In VSTO Add-in projects, you can access the Application object by using the Application field of the ThisAddIn class. 詳細については、「プログラム VSTO アドイン」を参照してください。For more information, see Program VSTO Add-ins.

ドキュメント レベルのプロジェクトで Application オブジェクトにアクセスするには、 Application クラスの ThisDocument プロパティを使用します。In document-level projects, you can access the Application object by using the Application property of the ThisDocument class.

Document オブジェクトDocument object

Document オブジェクトは、Word プログラミングの中心となるオブジェクトです。The Document object is central to programming Word. これは、文書とそのすべてのコンテンツを表します。It represents a document and all of its contents. 文書を開いたり、新しい文書を作成したりすると、新しい Document オブジェクトが作成され、 Microsoft.Office.Interop.Word.Documents オブジェクトの Application コレクションに追加されます。When you open a document or create a new document, you create a new Document object, which is added to the Microsoft.Office.Interop.Word.Documents collection of the Application object. フォーカスがある文書は、作業中の文書と呼ばれます。The document that has the focus is called the active document. これは ActiveDocument オブジェクトの Application プロパティによって表されます。It is represented by the ActiveDocument property of the Application object.

Visual Studio の Office 開発ツールには、 Document オブジェクトを拡張する Document 型が用意されています。The Office development tools in Visual Studio extend the Document object by providing the Document type. この型は、 オブジェクトのすべての機能に対するアクセスを提供する ホスト項目 Document であり、追加のイベントと、マネージド コントロールを追加する機能を備えています。This type is a host item that gives you access to all features of a Document object, and adds additional events and the ability to add managed controls.

ドキュメント レベルのプロジェクトを作成する場合は、プロジェクトで生成された Document クラスを使用して ThisDocument のメンバーにアクセスできます。When you create a document-level project, you can access Document members by using the generated ThisDocument class in your project. Document ホスト項目のメンバーにアクセスするには、ThisDocument クラスのコードからMeまたはこのキーワードを使用するか、ThisDocument クラスの外部のコードから Globals.ThisDocument を使用します。You can access members of the Document host item by using the Me or this keywords from code in the ThisDocument class, or by using Globals.ThisDocument from code outside the ThisDocument class. 詳細については、「プログラムによるドキュメントレベルのカスタマイズ」を参照してください。For more information, see Program document-level customizations. たとえば、文書の最初の段落を選択するには次のコードを使用します。For example, to select the first paragraph in the document, use the following code.

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

VSTO アドイン プロジェクトでは、実行時に Document ホスト項目を生成できます。In VSTO Add-in projects, you can generate Document host items at run time. 生成されたホスト項目を使用して、関連付けられた文書にコントロールを追加できます。You can use the generated host item to add controls to the associated document. 詳細については、「 VSTO アドインでの実行時の Word 文書と Excel ブックの拡張」を参照してください。For more information, see Extend Word documents and Excel workbooks in VSTO Add-ins at run time.

Selection オブジェクトSelection object

Selection オブジェクトは、現在選択されている領域を表します。The Selection object represents the area that is currently selected. Word のユーザー インターフェイスで太字のテキストなどの操作を実行するときは、テキストを選択 (強調表示) してから書式を適用します。When you perform an operation in the Word user interface, such as bolding text, you select, or highlight the text and then apply the formatting. Selection オブジェクトは、文書内に常に存在します。The Selection object is always present in a document. 何も選択されていない場合は、挿入ポイントを表します。If nothing is selected, then it represents the insertion point. 1 つの選択範囲で、連続していない複数のテキスト ブロックを囲むこともできます。In addition, a selection can encompass multiple blocks of text that are not contiguous.

Range オブジェクトRange object

Range オブジェクトは、文書内の連続した領域を表し、開始文字位置と終了文字位置によって定義されます。The Range object represents a contiguous area in a document, and is defined by a starting character position and an ending character position. Range オブジェクトは 1 つに限定されていません。You are not limited to a single Range object. 同じ文書内に複数の Range オブジェクトを定義できます。You can define multiple Range objects in the same document. Range オブジェクトには次の特徴があります。A Range object has the following characteristics:

  • 単独の挿入ポイント、テキストの範囲、または文書全体で構成されます。It can consist of the insertion point alone, a range of text, or the entire document.

  • 空白、タブ文字、段落記号などの非印刷文字を含みます。It includes non-printing characters such as spaces, tab characters, and paragraph marks.

  • 現在の選択範囲によって表される領域、または現在の選択範囲とは異なる領域を表すことができます。It can be the area represented by the current selection, or it can represent an area different from the current selection.

  • 常に表示されている選択範囲とは異なり、文書内には表示されません。It is not visible in a document, unlike a selection, which is always visible.

  • 文書と共に保存されることはなく、コードの実行中にのみ存在します。It is not saved with a document and exists only while the code is running.

    範囲の末尾にテキストを挿入すると、挿入したテキストが含まれるように自動的に範囲が拡張されます。When you insert text at the end of a range, Word automatically expands the range to include the inserted text.

コンテンツコントロールオブジェクトContent control objects

ContentControl は、Word 文書のテキストおよびその他の種類のコンテンツの入力と表示を制御する方法を提供します。A ContentControl provides a way for you to control the input and presentation of text and other types of content in Word documents. ContentControl は、Word 文書内で使用するために最適化されたさまざまな種類の UI (リッチ テキスト コントロール、日付選択、コンボ ボックスなど) を表示できます。A ContentControl can display several different types of UI that are optimized for use in Word documents, such as a rich text control, a date picker, or a combo box. ContentControl を使用して、ユーザーが文書やテンプレートのセクションを編集できないようにすることもできます。You can also use a ContentControl to prevent users from editing sections of the document or template.

Visual Studio は、 ContentControl オブジェクトをさまざまな種類のホスト コントロールに拡張します。Visual Studio extends the ContentControl object into several different host controls. ContentControl オブジェクトがコンテンツ コントロールで利用可能なさまざまな種類の UI を表示するのに対して、Visual Studio は各コンテンツ コントロールに対応するさまざまな型を提供します。Whereas the ContentControl object can display any of the different types of UI that are available for content controls, Visual Studio provides a different type for each content control. たとえば、 RichTextContentControl を使用してリッチ テキスト コントロールを作成したり、 DatePickerContentControl を使用して日付選択を作成したりできます。For example, you can use a RichTextContentControl to create a rich text control, or you can use a DatePickerContentControl to create a date picker. これらのホスト コントロールは、ネイティブな ContentControlと同様に動作しますが、付加的なイベントやデータ バインディング機能を備えています。These host controls behave like the native ContentControl, but they have additional events and data-binding capabilities. 詳細については、「コンテンツコントロール」を参照してください。For more information, see Content controls.

Bookmark オブジェクトBookmark object

Bookmark オブジェクトは、開始位置と終了位置によって文書内の連続した領域を表します。The Bookmark object represents a contiguous area in a document, with both a starting position and an ending position. ブックマークは、文書内の場所にマークを付けたり、文書内のテキストのコンテナーとして使用したりできます。You can use bookmarks to mark a location in a document, or as a container for text in a document. Bookmark オブジェクトは、挿入ポイントで構成されますが、文書全体になることもあります。A Bookmark object can consist of the insertion point, or be as large as the entire document. Bookmark には、 Range オブジェクトとは異なる次の特徴があります。A Bookmark has the following characteristics that set it apart from the Range object:

  • デザイン時に、ブックマークに名前を付けることができます。You can name the bookmark at design time.

  • Bookmark オブジェクトは文書と共に保存されるため、コードの実行を停止したり文書を閉じたりしても、削除されません。Bookmark objects are saved with the document, and thus are not deleted when the code stops running or your document is closed.

  • Microsoft.Office.Interop.Word.View オブジェクトの ShowBookmarks プロパティをfalseまたはtrueに設定すると、ブックマークを非表示にしたり表示したりできます。Bookmarks can be hidden or made visible by setting the ShowBookmarks property of the Microsoft.Office.Interop.Word.View object to false or true.

    Visual Studio は Bookmark ホスト コントロールを提供することで Bookmark オブジェクトを拡張します。Visual Studio extends the Bookmark object by providing the Bookmark host control. Bookmark ホスト コントロールは、ネイティブな Bookmarkと同様に動作しますが、付加的なイベントやデータ バインディング機能を備えています。The Bookmark host control behaves like a native Bookmark, but has additional events and data-binding capabilities. Windows フォームのテキスト ボックス コントロールにデータをバインドするのと同じ方法で、文書の Bookmark コントロールにデータをバインドできます。You can bind data to a bookmark control on a document in the same way that you bind data to a text box control on a Windows Form. 詳細については、「 Bookmark コントロール」を参照してください。For more information, see Bookmark control.

Word オブジェクトモデルのドキュメントを使用するUse the Word object model documentation

Word オブジェクト モデルの詳細については、Word プライマリ相互運用機能アセンブリ (PIA) のリファレンス、および Visual Basic for Applications (VBA) オブジェクト モデルのリファレンスを参照してください。For complete information about the Word object model, you can refer to the Word primary interop assembly (PIA) reference and the Visual Basic for Applications (VBA) object model reference.

プライマリ相互運用機能アセンブリのリファレンスPrimary interop assembly reference

Word PIA のリファレンス ドキュメントでは、Word プライマリ相互運用機能アセンブリの型について説明しています。The Word PIA reference documentation describes the types in the primary interop assembly for Word. このドキュメントは、 Word 2010 のプライマリ相互運用機能アセンブリ参照の場所から入手できます。This documentation is available from the following location: Word 2010 primary interop assembly reference.

PIA のクラスとインターフェイスの違い、PIA のイベントの実装方法など、Word PIA の設計の詳細については、「 Office プライマリ相互運用機能アセンブリのクラスとインターフェイスの概要」を参照してください。For more information about the design of the Word PIA, such as the differences between classes and interfaces in the PIA and how events in the PIA are implemented, see Overview of classes and interfaces in the Office primary interop assemblies.

VBA オブジェクトモデルのリファレンスVBA object model reference

VBA オブジェクト モデルのリファレンスでは、VBA コードに公開される Word オブジェクト モデルについて説明しています。The VBA object model reference documents the Word object model as it is exposed to VBA code. 詳細については、「 Word 2010 オブジェクトモデルのリファレンス」を参照してください。For more information, see Word 2010 object model reference.

VBA オブジェクト モデルのリファレンス内のオブジェクトとメンバーはすべて、Word PIA の型とメンバーに対応します。All of the objects and members in the VBA object model reference correspond to types and members in the Word PIA. たとえば、VBA オブジェクトモデルのリファレンス内の Document オブジェクトは、Word PIA の Document オブジェクトに対応します。For example, the Document object in the VBA object model reference corresponds to the Document object in the Word PIA. VBA オブジェクト モデルのリファレンスでは、ほとんどのプロパティ、メソッド、およびイベントのコード例を紹介しています。ただし、Visual Studio を使用して作成した Word プロジェクトでこのリファレンス内の VBA コードを使用するには、それらを Visual Basic または Visual C# に変換する必要があります。Although the VBA object model reference provides code examples for most properties, methods, and events, you must translate the VBA code in this reference to Visual Basic or Visual C# if you want to use them in a Word project that you create by using Visual Studio.

関連項目See also