Office ソリューション プログラミング モデル
更新 : 2007 年 11 月
Microsoft Office オブジェクト モデルは、プログラム可能なさまざまなオブジェクトを公開します。通常、マネージ コードを使用してオートメーションによって Microsoft Office アプリケーションをプログラムする場合、プライマリ相互運用機能アセンブリに対してコードを直接作成します。Visual Studio Tools for Office ソリューションでは、プロジェクト内のホスト項目に対してもコードを直接作成します。
また、Visual Studio Tools for Office は、イベントおよびデータ バインディング機能を追加してコントロールとして公開することにより、Microsoft Office Word および Microsoft Office Excel の一部のオブジェクトを拡張します。公開するコントロールは、Windows フォームでコントロールを追加する場合と同様にドキュメントに追加できます。このように拡張されたコントロールをホスト コントロールと呼びます。
ホスト項目の使用
ホスト項目には、コードのエントリ ポイントとなる Startup イベントと Shutdown イベントが用意されています。アドインを初期化するには、コードを Startup イベント ハンドラに追加します。アドインによって使用されるリソースをクリーンアップするには、コードを Shutdown イベント ハンドラに追加します。詳細については、「Visual Studio Tools for Office プロジェクトのイベント」を参照してください。
ホスト項目には、ホスト アプリケーションのオブジェクト モデルへのエントリ ポイントもあります。Excel および Word のプロジェクトでは、ホスト アプリケーションのオブジェクト モデルに含まれるクラスに類似したホスト項目が提供されます。たとえば、Word 文書プロジェクトの Microsoft.Office.Tools.Word.Document ホスト項目は Word オブジェクト モデルの Microsoft.Office.Interop.Word.Document クラスと同じメンバを提供します。詳細については、「ホスト項目とホスト コントロールの概要」を参照してください。
アプリケーション レベルのプロジェクトは AddIn ホスト項目を提供します。このホスト項目は、ホスト アプリケーションのオブジェクト モデル内のクラスからは派生しません。代わりに、ホスト アプリケーションの現在のインスタンスを表すオブジェクトを返す Application フィールドを提供します。詳細については、「アプリケーション レベルのアドインのプログラミング」を参照してください。
ホスト コントロール イベントとデータ バインディングの使用
ホスト コントロールにはプログラム可能なイベントがあります。たとえば、ネイティブな Excel Microsoft.Office.Interop.Excel.Range にはイベントがありませんが、NamedRange ホスト コントロールの Change イベントをプログラムできます。詳細については、「チュートリアル : NamedRange コントロールのイベントのプログラミング 」を参照してください。
Windows フォームでコントロールのイベントを使用する場合と同じ方法で、これらのイベントに対するコードを記述できます。詳細については、「イベントの概要 (Windows フォーム)」を参照してください。
ホスト コントロールには、Windows フォームのコントロールと同じように動作するデータ バインディング機能もあります。ホスト コントロールにより、単純データ バインディングまたは複合データ バインディングを実行できます。詳細については、「コントロールへのデータのバインド」および「データ連結と Windows フォーム」を参照してください。
ドキュメント レベルのプロジェクトのデータに対するプログラミング
ドキュメント レベルのプロジェクトのデータは、ASP.NET Web ページがデータを格納する場合と同じような方法で、ドキュメントとは別に、埋め込まれたデータ アイランドに格納できます。埋め込まれたデータ アイランドを使って格納したデータにアクセスする場合は、Word や Excel を起動して文書を開いたり、アプリケーションのオブジェクト モデルを使用したりする必要はありません。詳細については、「ドキュメント レベルのカスタマイズにおけるデータ (概要)」を参照してください。
スキーマ ベースのプログラミング
Office プロジェクトのデータにアクセスしてデータを操作する場合は、型指定されたデータセットを作成して、使用するデータを保持する方法をお勧めします。スキーマ ベースのプログラミングでは、Office 指向のコードの代わりにビジネス指向のコードを使用して、独自のオブジェクト モデルを定義し、より直観的な方法でプログラミングできます。Office オブジェクト モデルの場合よりもソリューションに専念しやすくなります。型指定されたデータセットの詳細については、「Visual Studio のデータセットの概要」を参照してください。
サーバー側のプログラミング
データは埋め込まれたデータ アイランドに格納されるので、Microsoft Office アプリケーションを起動せずに、サーバーに格納されたドキュメントに関連付けられたデータに直接アクセスできます。詳細については、「サーバー上のドキュメント内のデータへのアクセス」を参照してください。