Office プロジェクトから Microsoft Office アプリケーションの機能を使用するには、アプリケーションのプライマリ相互運用機能アセンブリ (PIA) を使用する必要があります。 PIA を使用すると、マネージ コードは Microsoft Office アプリケーションの COM ベースのオブジェクト モデルと対話できます。
注
複数のプラットフォームで Office エクスペリエンスを拡張するソリューションの開発に関心がありますか? 新しい Office アドイン モデルを確認します。 Office アドインは VSTO アドインやソリューションと比較してフットプリントが小さく、HTML5、JavaScript、CSS3、XML などのほぼすべての Web プログラミング テクノロジを使用して構築できます。
新しい Office プロジェクトを作成すると、Visual Studio はプロジェクトのビルドに必要な PIA への参照を追加します。 シナリオによっては、他の PIA への参照を追加する必要がある場合があります (たとえば、Microsoft Office Excel のプロジェクトで Microsoft Office Word の機能を使用できます)。
この記事では、Office プロジェクトで Microsoft Office PIA を使用する場合の次の側面について説明します。
プライマリ相互運用機能アセンブリの詳細については、「 プライマリ相互運用機能アセンブリ」を参照してください。
プロジェクトをビルドして実行するためのプライマリ相互運用機能アセンブリを分離する
Visual Studio では、開発用コンピューター上のさまざまな PIA セットが使用されます。 これらの異なるアセンブリのセットは、次の場所にあります。
プログラム ファイル ディレクトリ内のフォルダー
このアセンブリのセットは、コードを記述してプロジェクトをビルドするときに使用されます。 Visual Studio では、これらのアセンブリが自動的にインストールされます。
グローバル アセンブリ キャッシュ
このアセンブリのセットは、プロジェクトの実行やデバッグなどの一部の開発タスクで使用されます。 Visual Studio では、これらのアセンブリはインストールおよび登録されません。自分で行う必要があります。
プログラム ファイル ディレクトリ内のプライマリ相互運用機能アセンブリ
PIA は、Visual Studio のインストール中に、グローバル アセンブリ キャッシュの外部にあるファイル システム内の場所に自動的に追加されます。 新しいプロジェクトを作成すると、Visual Studio によって、これらの PIA のコピーへの参照がプロジェクトに自動的に追加されます。 Visual Studio では、グローバル アセンブリ キャッシュ内のアセンブリではなく、これらの PIA のコピーを使用して、プロジェクトの開発とビルド時に型参照を解決します。
異なるバージョンの PIA がグローバル アセンブリ キャッシュに登録されている場合、いくつかの開発上の問題が発生する可能性があります。 PIA の追加されたコピーは、このような問題を回避するのに役立ちます。
Visual Studio 2017 以降の場合、これらの PIA のコピーは、開発用コンピューター上の次の共有の場所にインストールされます。
%ProgramFiles%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\(または 64 ビット オペレーティング システム上の
%ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\)
注
以前のバージョンの Visual Studio の場合、これらの PIA は、そのバージョンの Visual Studio の %ProgramFiles% フォルダーの下にある Visual Studio Tools for Office\PIA フォルダーにインストールされます。
例えば: %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\
グローバル アセンブリ キャッシュ内のプライマリ相互運用機能アセンブリ
特定の開発タスクを実行するには、PIA をインストールし、開発用コンピューターのグローバル アセンブリ キャッシュに登録する必要があります。 通常、PIA は、開発用コンピューターに Office をインストールすると自動的にインストールされます。 詳細については、「 Office ソリューションを開発するためのコンピューターの構成」を参照してください。
Office ソリューションを実行するために、エンド ユーザー のコンピューターでは Office PIA は必要ありません。 詳細については、「 Office ソリューションの設計と作成」を参照してください。
1 つのプロジェクトで複数の Microsoft Office アプリケーションの機能を使用する
Visual Studio のすべての Office プロジェクト テンプレートは、1 つの Microsoft Office アプリケーションで動作するように設計されています。 複数の Microsoft Office アプリケーションで機能を使用する場合、または Visual Studio にプロジェクトがないアプリケーションまたはコンポーネントで機能を使用するには、必要な PIA への参照を追加する必要があります。
ほとんどの場合、 %ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\ ディレクトリの下に Visual Studio によってインストールされている PIA への参照を追加する必要があります。 これらのバージョンのアセンブリは、[参照マネージャー] ダイアログ ボックスの [フレームワーク] タブに表示されます。 詳細については、「 方法: プライマリ相互運用機能アセンブリを使用して Office アプリケーションをターゲットにする」を参照してください。
PIA をグローバル アセンブリ キャッシュにインストールして登録した場合は、[参照マネージャー] ダイアログ ボックスの [COM] タブにこれらのバージョンのアセンブリが表示されます。 これらのバージョンのアセンブリには参照を追加しないでください。アセンブリを使用するときに発生する可能性のある開発上の問題があるためです。 たとえば、異なるバージョンの PIA をグローバル アセンブリ キャッシュに登録した場合、[参照マネージャー] ダイアログ ボックスの [COM] タブで別のバージョンのアセンブリを指定した場合でも、プロジェクトは最後に登録されたアセンブリのバージョンに自動的にバインドされます。
注
参照を含むアセンブリがプロジェクトに追加されると、それに伴い一部のアセンブリが自動的に追加されます。 たとえば、Word、Excel、Outlook、Microsoft Forms、または Graph アセンブリへの参照を追加すると、 Office.dll アセンブリと Microsoft.Vbe.Interop.dll アセンブリへの参照が自動的に追加されます。
Microsoft Office アプリケーションのプライマリ相互運用機能アセンブリ
次の表に、Office 2016、Office 2013、Office 2010 で使用できるプライマリ相互運用機能アセンブリの一覧を示します。
| Office アプリケーションまたはコンポーネント | プライマリ相互運用機能アセンブリ名 |
|---|---|
| Microsoft Access 14.0 オブジェクト ライブラリ Microsoft Access 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.Access.dll |
| Microsoft Office 14.0 Access データベース エンジン オブジェクト ライブラリ Microsoft Office 15.0 Access データベース エンジン オブジェクト ライブラリ |
Microsoft.Office.Interop.Access.Dao.dll |
| Microsoft Excel 14.0 オブジェクト ライブラリ Microsoft Excel 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.Excel.dll |
| Microsoft Graph 14.0 オブジェクト ライブラリ (グラフのPowerPoint、Access、Word で使用) Microsoft Graph 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.Graph.dll |
| Microsoft InfoPath 2.0 タイプ ライブラリ (InfoPath 2007 のみ) | Microsoft.Office.Interop.InfoPath.dll |
| Microsoft InfoPath XML 相互運用機能アセンブリ (InfoPath 2007 のみ) | Microsoft.Office.Interop.InfoPath.Xml.dll |
| Microsoft Office 14.0 オブジェクト ライブラリ (Office 共有機能) Microsoft Office 15.0 オブジェクト ライブラリ (Office 共有機能) |
office.dll |
| Microsoft Office Outlook ビュー コントロール (Web ページやアプリケーションで受信トレイにアクセスするために使用できます) | Microsoft.Office.Interop.OutlookViewCtl.dll |
| Microsoft Outlook 14.0 オブジェクト ライブラリ Microsoft Outlook 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.Outlook.dll |
| Microsoft PowerPoint 14.0 オブジェクト ライブラリ Microsoft PowerPoint 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.PowerPoint.dll |
| Microsoft Project 14.0 オブジェクト ライブラリ Microsoft Project 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.MSProject.dll |
| Microsoft Publisher 14.0 オブジェクト ライブラリ Microsoft Publisher 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.Publisher.dll |
| Microsoft SharePoint Designer 14.0 Web オブジェクト参照ライブラリ | Microsoft.Office.Interop.SharePointDesigner.dll |
| Microsoft SharePoint Designer 14.0 ページ オブジェクト参照ライブラリ | Microsoft.Office.Interop.SharePointDesignerPage.dll |
| Microsoft Smart Tags 2.0 タイプ ライブラリ 注: スマート タグは Excel 2010 および Word 2010 では非推奨です。 | Microsoft.Office.Interop.SmartTag.dll |
| Microsoft Visio 14.0 タイプ ライブラリ Microsoft Visio 15.0 タイプ ライブラリ |
Microsoft.Office.Interop.Visio.dll |
| Microsoft Visio 14.0 Web タイプ ライブラリとして保存 Microsoft Visio 15.0 Web タイプ ライブラリとして保存 |
Microsoft.Office.Interop.Visio.SaveAsWeb.dll |
| Microsoft Visio 14.0 描画コントロールタイプライブラリ Microsoft Visio 15.0 Drawing Control Type Library |
Microsoft.Office.Interop.VisOcx.dll |
| Microsoft Word 14.0 オブジェクト ライブラリ Microsoft Word 15.0 オブジェクト ライブラリ |
Microsoft.Office.Interop.Word.dll |
| Microsoft Visual Basic for Applications Extensibility 5.3 | Microsoft.Vbe.Interop.dll |
アセンブリ バインドのリダイレクト
グローバル アセンブリ キャッシュに Office PIA をインストールして登録すると (Office を使用するか、PIA の再頒布可能パッケージをインストールすることによって)、バインド リダイレクト アセンブリもグローバル アセンブリ キャッシュにのみインストールされます。 これらのアセンブリは、実行時に正しいバージョンのプライマリ相互運用機能アセンブリが読み込まれるようにします。
たとえば、Office 2010 アセンブリを参照するソリューションが、同じプライマリ相互運用機能アセンブリの Office 2013 バージョンを持つコンピューターで実行されている場合、バインド リダイレクト アセンブリは、Office 2013 バージョンのプライマリ相互運用機能アセンブリを読み込むよう .NET Framework ランタイムに指示します。
詳細については、「 方法: バインドの自動リダイレクトを有効または無効にする」を参照してください。