次の方法で共有


Office ソリューションのコードの記述

Office プロジェクトのコードの記述には、Visual Studio の他のプロジェクトの種類とは異なる点があります。 相違点の多くは、Office オブジェクト モデルがマネージ コードに公開される方法に関連しています。 Office プロジェクトのデザインに関連する相違点もあります。

対象: このトピックの情報は、Microsoft Office 2010 および 2007 Microsoft Office system のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。

マネージ コードおよび Office プログラミング

Microsoft Office 統合ソリューションの作成を実現するための鍵となるテクノロジは、コンポーネント オブジェクト モデル (COM: Component Object Model) テクノロジの一部であるオートメーションです。 オートメーションにより、コードを使用して、適切なプログラミング インターフェイスで作成されたアプリケーション、DLL、または ActiveX コントロールによって公開されるソフトウェア オブジェクトを作成および制御できます。

プライマリ相互運用機能アセンブリについて

Microsoft Office アプリケーションの多くの機能は、オートメーション用に公開されています。 ただし、マネージ コード (Visual Basic や C# など) を直接使用して Office アプリケーションを自動化することはできません。 マネージ コードを使用して Office アプリケーションを自動化するには、Office プライマリ相互運用機能アセンブリ (PIA: Primary Interop Assembly) を使用する必要があります。 プライマリ相互運用機能アセンブリにより、Office アプリケーションの COM ベースのオブジェクト モデルとマネージ コードとの相互運用を実行できるようになります。

すべての Microsoft Office アプリケーションに PIA があります。 Visual Studio で Office アプリケーションを作成すると、適切な PIA への参照が自動的にプロジェクトに追加されます。 プロジェクトから他の Office アプリケーションの機能を自動化するには、適切な PIA への参照を手動で追加する必要があります。 詳細については、「方法 : プライマリ相互運用機能アセンブリを利用して Office アプリケーションを使用する」を参照してください。

デザイン時および実行時のプライマリ相互運用機能アセンブリの使用

ほとんどの開発タスクを実行するには、開発用コンピューターのグローバル アセンブリ キャッシュに Office PIA をインストールし、登録する必要があります。 詳細については、「Office ソリューションを開発できるようにコンピューターを構成する」を参照してください。

エンド ユーザーのコンピューターで .NET Framework 3.5 を対象にした Office ソリューションを実行するには、そのコンピューターにも PIA をインストールしておく必要があります。 ただし、エンド ユーザーのコンピューターで .NET Framework 4 を対象にした Office ソリューションを実行する場合は、Office PIA は必要ありません。 詳細については、「Office ソリューションのデザインと作成」を参照してください。

プライマリ相互運用機能アセンブリでの型の使用

Office PIA には、Office アプリケーションのオブジェクト モデルを公開する型とコード内で直接使用することを目的としていない追加のインフラストラクチャの型の組み合わせが含まれています。 Office PIA の型の概要については、「Overview of Classes and Interfaces in the Office Primary Interop Assemblies」を参照してください。

Office PIA の型は COM ベース オブジェクト モデルの型に対応しているため、これらの型の使用方法は、他のマネージ型の使用方法とは異なる場合があります。 たとえば、Office プライマリ相互運用機能アセンブリの省略可能なパラメーターを持つメソッドを呼び出す方法は、プロジェクトで使用するプログラミング言語によって異なります。 詳細については、次のトピックを参照してください。

Office プロジェクトのプログラミング モデル

すべての Office プロジェクトには、コードのエントリ ポイントを提供する 1 つ以上のクラスが生成されます。 これらのクラスを使用して、ホスト アプリケーションのオブジェクト モデルにアクセスしたり、操作ウィンドウやカスタム作業ウィンドウなどの機能にアクセスしたりできます。

生成されるクラスについて

Excel および Word のドキュメント レベル プロジェクトの場合、生成されるクラスは、アプリケーションのオブジェクト モデルのトップレベルのオブジェクトに似ています。 たとえば、Word 文書プロジェクトに生成される ThisDocument クラスは、Word オブジェクト モデルの Microsoft.Office.Interop.Word.Document クラスと同じメンバーを提供します。 ドキュメント レベルのプロジェクトで生成されるクラスの詳細については、「ドキュメント レベルのカスタマイズのプログラミング」を参照してください。

アプリケーション レベルのプロジェクトには、ThisAddIn というクラスが生成されます。 このクラスは、ホスト アプリケーションのオブジェクト モデル内のクラスには似ていません。 代わりに、このクラスはアドイン自体を表し、ホスト アプリケーションのオブジェクト モデルへのアクセスと、アドインで利用可能な他の機能へのアクセスに使用できるメンバーを提供します。 詳細については、「アプリケーション レベルのアドインのプログラミング」を参照してください。

Office プロジェクトで生成されるすべてのクラスには、Startup および Shutdown のイベント ハンドラーが含まれます。 コードを書き始めるには、通常はこれらのイベント ハンドラーにコードを追加します。 アドインを初期化するには、コードを Startup イベント ハンドラーに追加します。 アドインによって使用されるリソースをクリーンアップするには、コードを Shutdown イベント ハンドラーに追加します。 詳細については、「Office プロジェクトのイベント」を参照してください。

生成されたクラスへの実行時のアクセス

Office ソリューションが読み込まれると、Visual Studio Tools for Office Runtime によって、プロジェクト内に生成された各クラスがインスタンス化されます。 これらのオブジェクトには、プロジェクト内の任意のコードから Globals クラスを使用してアクセスできます。 たとえば、Globals クラスを使用して、アプリケーション レベルのアドインのリボン ボタンのイベント ハンドラーから ThisAddIn クラスのコードを呼び出すことができます。

詳細については、「Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。

参照

処理手順

方法 : プライマリ相互運用機能アセンブリを利用して Office アプリケーションを使用する

方法: Office プロジェクトでイベント ハンドラーを作成する

Office ソリューションの遅延バインディング

概念

Office プロジェクトでサポートされているプログラミング言語

Office ソリューションでの Visual Basic を使用したプログラミングと Visual C# を使用したプログラミング

Office ソリューションの省略可能なパラメーター

Office プロジェクト内のオブジェクトへのグローバル アクセス

Office プロジェクトのイベント

Office ソリューションの名前空間の考慮事項

Office プロジェクトでの My の使用

Office プロジェクトの IntelliSense コード スニペット

Office ソリューションの共同開発