次の方法で共有


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

Visual Studio で Word ソリューションを開発するときは、Word オブジェクト モデルを操作します。 このオブジェクト モデルは、Word のプライマリ相互運用機能アセンブリで提供され、 Microsoft.Office.Interop.Word 名前空間で定義されているクラスとインターフェイスで構成されます。

適用対象: このトピックの情報は、Word のドキュメント レベルのプロジェクトと VSTO アドイン プロジェクトに適用されます。 詳細については、「 Office アプリケーションとプロジェクトの種類で使用できる機能」を参照してください。

このトピックでは、Word オブジェクト モデルの概要について説明します。 Word オブジェクト モデル全体の詳細については、「Word オブジェクト モデル の使用」ドキュメントを参照してください。

Word オブジェクト モデルを使用して特定のタスクを実行する方法については、次のトピックを参照してください。

Word オブジェクト モデルについて

Word には、操作できる何百ものオブジェクトが用意されています。 これらのオブジェクトは、ユーザー インターフェイスに近い階層に編成されます。 階層の上部には、 Application オブジェクトがあります。 このオブジェクトは、Word の現在のインスタンスを表します。 Application オブジェクトには、DocumentSelectionBookmark、およびRangeオブジェクトが含まれます。 これらの各オブジェクトには、オブジェクトを制御および操作するためにアクセスできる、多くのメソッドとプロパティがあります。

次の図は、Word オブジェクト モデルの階層内のこれらのオブジェクトの 1 つのビューを示しています。

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

一見すると、オブジェクトが重なっているように見えます。 たとえば、 Document オブジェクトと Selection オブジェクトはどちらも Application オブジェクトのメンバーですが、 Document オブジェクトは Selection オブジェクトのメンバーでもあります。 DocumentオブジェクトとSelectionオブジェクトの両方にBookmarkオブジェクトとRangeオブジェクトが含まれています。 重複は、同じ種類のオブジェクトに複数の方法でアクセスできるためです。 たとえば、 Range オブジェクトに書式を適用しますが、現在の選択範囲、特定の段落、セクション、または文書全体の範囲にアクセスできます。

次のセクションでは、最上位レベルのオブジェクトと、それらが相互に対話する方法について簡単に説明します。 これらのオブジェクトには、次の 5 つがあります。

  • アプリケーション オブジェクト

  • Document オブジェクト

  • Selection オブジェクト

  • Range オブジェクト

  • Bookmark オブジェクト

    Word オブジェクト モデルに加えて、Visual Studio の Office プロジェクトには、Word オブジェクト モデルの一部のオブジェクトを拡張する ホスト項目ホスト コントロール が用意されています。 ホスト項目とホスト コントロールは、拡張する Word オブジェクトと同様に動作しますが、データ バインディング機能や追加のイベントなどの追加機能もあります。 詳細については、「 拡張オブジェクトを使用して Word を自動化 する」および「 ホスト項目とホスト コントロールの概要」を参照してください。

アプリケーション オブジェクト

Application オブジェクトは Word アプリケーションを表し、他のすべてのオブジェクトの親オブジェクトです。 通常、これらのメンバーは Word 全体に適用されます。 そのプロパティとメソッドを使用して、Word 環境を制御できます。

VSTO アドイン プロジェクトでは、Application クラスの Application フィールドを使用して、ThisAddIn オブジェクトにアクセスできます。 詳細については、「 プログラム VSTO アドイン」を参照してください。

ドキュメント レベルのプロジェクトでは、Application クラスの Application プロパティを使用して、ThisDocument オブジェクトにアクセスできます。

Document オブジェクト

Document オブジェクトは、Word のプログラミングの中心です。 ドキュメントとそのすべての内容を表します。 ドキュメントを開くか、新しいドキュメントを作成するときに、Document オブジェクトのDocuments コレクションに追加される新しいApplication オブジェクトを作成します。 フォーカスがあるドキュメントは、作業中の文書と呼ばれます。 これは、ActiveDocument オブジェクトのApplication プロパティによって表されます。

Visual Studio の Office 開発ツールは、Documentの種類を指定してDocument オブジェクトを拡張します。 この型は、 オブジェクトのすべての機能へのアクセスを提供し、追加のイベントとマネージド コントロールを追加する機能を提供するDocumentです。

ドキュメント レベルのプロジェクトを作成するときに、プロジェクトで生成されたDocument クラスを使用してThisDocumentメンバーにアクセスできます。 Document ホスト項目のメンバーには、 クラスのコードから Me またはThisDocumentキーワードを使用するか、Globals.ThisDocument クラスの外部のコードからThisDocumentを使用してアクセスできます。 詳細については、「 プログラムのドキュメント レベルのカスタマイズ」を参照してください。 たとえば、ドキュメントの最初の段落を選択するには、次のコードを使用します。

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

VSTO アドイン プロジェクトでは、実行時に Document ホスト項目を生成できます。 生成されたホスト項目を使用して、関連するドキュメントにコントロールを追加できます。 詳細については、「実行時に VSTO アドインで Word 文書と Excel ブックを拡張する」を参照してください。

Selection オブジェクト

Selection オブジェクトは、現在選択されている領域を表します。 テキストの太字化など、Word ユーザー インターフェイスで操作を実行する場合は、テキストを選択または強調表示してから、書式設定を適用します。 Selection オブジェクトは常にドキュメント内に存在します。 選択されていない場合は、挿入ポイントを表します。 さらに、選択範囲には、連続していない複数のテキスト ブロックを含めることができます。

Range オブジェクト

Range オブジェクトは、文書内の連続した領域を表し、開始文字の位置と終了文字の位置によって定義されます。 1 つの Range オブジェクトに限定されません。 同じドキュメント内に複数の Range オブジェクトを定義できます。 Range オブジェクトには、次の特性があります。

  • 挿入ポイントのみ、テキストの範囲、または文書全体で構成できます。

  • これには、スペース、タブ文字、段落記号などの印刷以外の文字が含まれます。

  • 現在の選択範囲で表される領域、または現在の選択範囲とは異なる領域を表すことができます。

  • 常に表示される選択範囲とは異なり、ドキュメントには表示されません。

  • ドキュメントと共に保存されず、コードの実行中にのみ存在します。

    範囲の末尾にテキストを挿入すると、挿入されたテキストを含むように範囲が自動的に展開されます。

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

ContentControlは、Word 文書内のテキストやその他の種類のコンテンツの入力と表示を制御する方法を提供します。 ContentControlでは、リッチ テキスト コントロール、日付ピッカー、コンボ ボックスなど、Word 文書で使用するために最適化されたさまざまな種類の UI を表示できます。 ContentControlを使用して、ユーザーがドキュメントまたはテンプレートのセクションを編集できないようにすることもできます。

Visual Studio は、 ContentControl オブジェクトを複数の異なるホスト コントロールに拡張します。 ContentControl オブジェクトは、コンテンツ コントロールで使用できるさまざまな種類の UI を表示できますが、Visual Studio では、コンテンツ コントロールごとに異なる種類が提供されます。 たとえば、 RichTextContentControl を使用してリッチ テキスト コントロールを作成したり、 DatePickerContentControl を使用して日付ピッカーを作成したりできます。 これらのホスト コントロールはネイティブ ContentControlと同様に動作しますが、追加のイベントとデータ バインディング機能があります。 詳細については、「 コンテンツ コントロール」を参照してください。

Bookmark オブジェクト

Bookmark オブジェクトは、開始位置と終了位置の両方を持つ、ドキュメント内の連続した領域を表します。 ブックマークを使用して、ドキュメント内の場所をマークしたり、ドキュメント内のテキストのコンテナーとしてマークしたりできます。 Bookmark オブジェクトは、挿入ポイントで構成することも、ドキュメント全体と同じ大きさにすることもできます。 Bookmarkには、Range オブジェクトとは別に設定される次の特性があります。

  • デザイン時にブックマークに名前を付けることができます。

  • Bookmark オブジェクトはドキュメントと共に保存されるため、コードの実行が停止したり、ドキュメントが閉じられたりしても削除されません。

  • ブックマークは、ShowBookmarks オブジェクトのView プロパティを false または true に設定することで、非表示にしたり、表示したりできます

    Visual Studio は、Bookmark ホスト コントロールを提供することで、Bookmark オブジェクトを拡張します。 Bookmark ホスト コントロールはネイティブ Bookmarkのように動作しますが、追加のイベントとデータ バインディング機能があります。 Windows フォームのテキスト ボックス コントロールにデータをバインドするのと同じ方法で、ドキュメントのブックマーク コントロールにデータをバインドできます。 詳細については、「 ブックマーク コントロール」を参照してください。

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

Word オブジェクト モデルの詳細については、Word プライマリ相互運用機能アセンブリ (PIA) リファレンスと Visual Basic for Applications (VBA) オブジェクト モデルリファレンスを参照してください。

プライマリ相互運用機能アセンブリリファレンス

Word PIA リファレンス ドキュメントでは、Word のプライマリ相互運用機能アセンブリの型について説明します。 このドキュメントは、 Word 2010 プライマリ相互運用機能アセンブリ リファレンスから入手できます。

PIA のクラスとインターフェイスの違い、PIA のイベントの実装方法など、Word PIA の設計の詳細については、「 Office プライマリ相互運用機能アセンブリのクラスとインターフェイスの概要」を参照してください。

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

VBA オブジェクト モデル参照は、VBA コードに公開されている Word オブジェクト モデルを文書化します。 詳細については、「 Word 2010 オブジェクト モデル リファレンス」を参照してください

VBA オブジェクト モデル参照のすべてのオブジェクトとメンバーは、Word PIA の型とメンバーに対応します。 たとえば、VBA オブジェクト モデル参照の Document オブジェクトは、Word PIA の Document オブジェクトに対応します。 VBA オブジェクト モデルリファレンスには、ほとんどのプロパティ、メソッド、およびイベントのコード例が用意されていますが、Visual Studio を使用して作成した Word プロジェクトで VBA コードを使用する場合は、この参照の VBA コードを Visual Basic または Visual C# に翻訳する必要があります。