Word オブジェクト モデルの概要
Visual Studio で Word ソリューションを開発する際は Word オブジェクト モデルと対話します。このオブジェクト モデルは、Word のプライマリ相互運用機能アセンブリで提供されるクラスとインターフェイスで構成されています。これらのクラスとインターフェイスは Microsoft.Office.Interop.Word 名前空間に定義されています。
対象: このトピックの情報は、Word 2013 と Word 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
ここでは、Word オブジェクト モデルの概要を簡単に説明します。Word オブジェクト モデル全体への理解を深めるのに役立つ資料については、「Word オブジェクト モデル ドキュメントの使用」を参照してください。
特定のタスク実行を目的とした Word オブジェクト モデルの使用の詳細については、次のトピックを参照してください。
Word オブジェクト モデルについて
Word では、何百ものオブジェクトが操作対象になります。これらのオブジェクトは、ユーザー インターフェイスとほぼ同様の階層形式で編成されています。階層の最上位には、Application オブジェクトがあります。このオブジェクトは、Word の現在のインスタンスを表します。Application オブジェクトには、Document、Selection、Bookmark、および Range というオブジェクトが含まれています。これらの各オブジェクトにはオブジェクトと処理と対話するにアクセスできるプロパティが多数あります。
Word オブジェクト モデルの階層内にあるオブジェクトのビューを次の図に示します。
Word オブジェクト モデル抽象
一見するとオブジェクトは重複します。たとえば、Document オブジェクトと Selection オブジェクトは、両方とも Application オブジェクトのメンバーですが、Document オブジェクトは Selection オブジェクトのメンバーでもあります。Document オブジェクトと Selection オブジェクトには、Bookmark オブジェクトと Range オブジェクトが含まれています。同じ型のオブジェクトへのアクセスに複数の方法があるので重複が生じます。たとえば、Range オブジェクトに書式を適用するときに、現在の選択の範囲、特定の段落、セクション、または文書全体にアクセスすることが必要な場合があります。
この後のセクションでは、最上位レベルのオブジェクトとそれらの相互関係について、簡単に説明します。これらのオブジェクトには、次の 5 つが含まれます。
Application オブジェクト
Document オブジェクト
Selection オブジェクト
Range オブジェクト
Bookmark オブジェクト
Word オブジェクト モデルに加えて、Visual Studio の Office プロジェクトには、Word オブジェクト モデルの一部のオブジェクトを拡張するホスト項目およびホスト コントロールが用意されています。ホスト項目およびホスト コントロールの動作は拡張元の Word オブジェクトに似ていますが、データ バインディングなどの機能やその他のイベントが追加されています。詳細については、「拡張オブジェクトによる Word の自動化」および「ホスト項目とホスト コントロールの概要」を参照してください。
Application オブジェクト
Application オブジェクトは Word アプリケーションを表し、他のすべてのオブジェクトの親になります。このオブジェクトのメンバーは、通常、Word 全体に適用されます。このオブジェクトのプロパティとメソッドを使用して、Word の環境を制御できます。
アプリケーション レベルのアドイン プロジェクトで Application オブジェクトにアクセスするには、ThisAddIn クラスの Application フィールドを使用します。詳細については、「アプリケーション レベルのアドインのプログラミング」を参照してください。
ドキュメント レベルのプロジェクトで Application オブジェクトにアクセスするには、ThisDocument クラスの Application プロパティを使用します。
Document オブジェクト
Microsoft.Office.Interop.Word.Document オブジェクトは、Word プログラミングの中心となるオブジェクトです。これは、文書とそのすべてのコンテンツを表します。文書を開いたり、新しい文書を作成したりすると、新しい Microsoft.Office.Interop.Word.Document オブジェクトが作成され、Application オブジェクトの Documents コレクションに追加されます。フォーカスのあるドキュメント文書はアクティブ ドキュメントと呼ばれます。これは、Application オブジェクトの ActiveDocument プロパティによって表されます。
Visual Studio の Office 開発ツールは Microsoft.Office.Tools.Word.Document 型を提供することで、Microsoft.Office.Interop.Word.Document オブジェクトを拡張します。この型は、Microsoft.Office.Interop.Word.Document オブジェクトのすべての機能に対するアクセスを提供するホスト項目であり、追加のイベントと、マネージ コントロールを追加する機能を備えています。
ドキュメント レベルのプロジェクトを作成する場合は、プロジェクトで生成された 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();
アプリケーション レベルのプロジェクトでは、実行時に Microsoft.Office.Tools.Word.Document ホスト項目を生成できます。関連付けられた文書にコントロールを追加するには生成されたホスト項目を使用できます。詳細については、「アプリケーション レベルのアドインにおける実行時の Word 文書や Excel ブックの拡張」を参照してください。
Selection オブジェクト
Selection オブジェクトは、現在選択されている領域を表します。Word のユーザー インターフェイスで操作を太字テキストなどの実行すると選択するかテキストを強調表示してから書式を適用します。Selection オブジェクトは、文書内に常に存在しています。テキストが選択されていない場合は、カーソル位置を表します。1 つの選択範囲で、連続していない複数のテキスト ブロックを囲むこともできます。
Range オブジェクト
Range オブジェクトは、文書内の連続した領域を表し、開始文字位置と終了文字位置によって定義されます。Range オブジェクトは、1 つに限定されていません。同じ文書内に複数の Range オブジェクトを定義できます。Rangeオブジェクトには次の特徴があります。
単独のカーソル位置、テキストの範囲、または文書全体で構成されます。
空白、タブ文字、段落記号などの非印刷文字を含みます。
現在の選択範囲を表す領域、または現在の選択範囲とは別の領域を表すことができます。
常に表示されている選択範囲とは異なり、文書内には表示されません。
このオブジェクトは文書と共に保存されることはなく、コードの実行中にのみ存在します。
範囲の末尾にテキストを挿入すると、挿入したテキストが含まれるように、自動的に範囲が拡張されます。
コンテンツ コントロール オブジェクト
Microsoft.Office.Interop.Word.ContentControl によって、Word 文書のテキストやその他の種類のコンテンツについて、その入力や表示を制御する方法が提供されます。Microsoft.Office.Interop.Word.ContentControl は、Word 文書での使用を目的に最適化された、さまざまな種類の UI (リッチ テキスト コントロール、日付選択、コンボ ボックスなど) を表示します。Microsoft.Office.Interop.Word.ContentControl を使用して、ユーザーが文書やテンプレートのセクションを編集できないようにすることもできます。
Visual Studio は、Microsoft.Office.Interop.Word.ContentControl オブジェクトをさまざまな種類のホスト コントロールに拡張します。Microsoft.Office.Interop.Word.ContentControl オブジェクトがコンテンツ コントロールで利用可能なさまざまな種類の UI を表示するのに対して、Visual Studio は各コンテンツ コントロールのさまざまな型を提供します。たとえば、Microsoft.Office.Tools.Word.RichTextContentControl を使用してリッチ テキスト コントロールを作成したり、Microsoft.Office.Tools.Word.DatePickerContentControl を使用して日付選択を作成したりすることができます。これらのホスト コントロールは、ネイティブな Microsoft.Office.Interop.Word.ContentControl のように動作しますが、付加的なイベントやデータ バインディング機能を備えています。詳細については、「コンテンツ コントロール」を参照してください。
Bookmark オブジェクト
Microsoft.Office.Interop.Word.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 では、Microsoft.Office.Tools.Word.Bookmark ホスト コントロールを提供することによって、Microsoft.Office.Interop.Word.Bookmark オブジェクトを拡張しています。Microsoft.Office.Tools.Word.Bookmark ホスト コントロールは、ネイティブな Microsoft.Office.Interop.Word.Bookmark のように動作しますが、追加のイベントやデータ バインディング機能を備えています。Windows フォームのテキスト ボックス コントロールにデータをバインドする場合と同じ方法で、文書のブックマーク コントロールにデータをバインドできます。詳細については、「Bookmark コントロール」を参照してください。
Word オブジェクト モデル ドキュメントの使用
Word オブジェクト モデルの詳細についてはWord のプライマリ相互運用機能アセンブリ (PIA) のリファレンスおよび (PIA) Visual Basic for Applications (VBA) オブジェクト モデルのリファレンスを参照してください。
プライマリ相互運用機能アセンブリのリファレンス
Word PIA のリファレンス ドキュメントでは、Word のプライマリ相互運用機能アセンブリの型について説明しています。このドキュメントは、Word 2010 プライマリ相互運用機能アセンブリのリファレンスから入手できます。
PIA のクラスとインターフェイスの違い、PIA のイベントの実装方法など、Word PIA の設計の詳細については、「Overview of Classes and Interfaces in the Office Primary Interop Assemblies (Office プライマリ相互運用機能アセンブリのクラスとインターフェイスの概要)」を参照してください。
VBA オブジェクト モデルのリファレンス
VBA コードに公開するための VBA オブジェクト モデルのリファレンスではWord オブジェクト モデル。詳細については" " を参照してください。Word 2010 Object Model Reference
VBA オブジェクト モデルのリファレンス内のオブジェクトとメンバーはすべて、Word PIA の型とメンバーに対応します。たとえば、VBA オブジェクト モデルのリファレンス内の Document オブジェクトは、Word PIA の Microsoft.Office.Interop.Word.Document オブジェクトに対応します。VBA オブジェクト モデルのリファレンスがほとんどのプロパティメソッドおよびイベントにコード例を提供しますがVisual Studio を使用して作成する Word プロジェクトで使用する場合はVisual Basic または Visual C# にこの参照の VBA コードに変換する必要があります。