Office プライマリ相互運用機能アセンブリ

Office プロジェクトから Microsoft Office アプリケーションの機能を使用するには、アプリケーションのプライマリ相互運用機能アセンブリ (PIA: Primary Interop Assembly) を使用することが必要です。 PIA によって、Microsoft Office アプリケーションの COM ベースのオブジェクト モデルと対話するマネージド コードを作成できるようになります。

Note

複数のプラットフォームで 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 のさまざまなセットを使用します。 これらのアセンブリ セットは、次の場所に配置されます。

  • Program Files ディレクトリ下のフォルダー

    この一連のアセンブリは、コードを記述してプロジェクトをビルドするときに使用されます。 これらのアセンブリは、Visual Studio によって自動的にインストールされます。

  • グローバル アセンブリ キャッシュ

    この一連のアセンブリは、プロジェクトの実行やデバッグを行うときなど、一部の開発タスクで使用されます。 Visual Studio では、これらのアセンブリのインストールと登録は行われないため、ご自身で行う必要があります。

Program Files ディレクトリ下のプライマリ相互運用機能アセンブリ

Visual Studio のインストール中、ファイル システム内の場所 (グローバル アセンブリ キャッシュ外部) に PIA が自動的に追加されます。 新しいプロジェクトを作成すると、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\)

Note

以前のバージョンの 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 をインストールし、登録する必要があります。 通常、開発用コンピューターに Office をインストールすると、自動的に PIA がインストールされます。 詳細については、「Office ソリューションを開発できるようにコンピューターを構成する」を参照してください。

Office PIA は、Office ソリューションが実行されるエンド ユーザーのコンピューターには必要ありません。 詳細については、「Office ソリューションの設計と作成」を参照してください。

1 つのプロジェクトで複数の Microsoft Office アプリケーションの機能を使用する

Visual Studio の各 Office プロジェクト テンプレートは、単一の 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] タブで別のバージョンのアセンブリを指定しても、プロジェクトは最後に登録されたバージョンのアセンブリにバインドされます。

Note

アセンブリによっては、参照元のアセンブリを追加すると、参照先のアセンブリも自動的に追加される場合があります。 たとえば、Word、Excel、Outlook、Microsoft Forms、または Graph アセンブリへの参照を追加すると、アセンブリの Office.dllMicrosoft.Vbe.Interop.dll への参照も自動的に追加されます。

Microsoft Office アプリケーション プライマリ相互運用機能アセンブリ

次の表に、Office 2016、Office 2013、Office 2010 で使用できるプライマリ相互運用機能アセンブリの一覧を示します。


Office アプリケーションまたはコンポーネント プライマリ相互運用機能アセンブリの名前
Microsoft Access 14.0 Object Library

Microsoft Access 15.0 Object Library
Microsoft.Office.Interop.Access.dll
Microsoft Office 14.0 Access Database Engine Object Library

Microsoft Office 15.0 Access Database Engine Object Library
Microsoft.Office.Interop.Access.Dao.dll
Microsoft Excel 14.0 Object Library

Microsoft Excel 15.0 Object Library
Microsoft.Office.Interop.Excel.dll
Microsoft Graph 14.0 Object Library (PowerPoint、Access、および Word のグラフで使用)

Microsoft Graph 15.0 Object Library
Microsoft.Office.Interop.Graph.dll
Microsoft InfoPath 2.0 Type Library (InfoPath 2007 専用) Microsoft.Office.Interop.InfoPath.dll
Microsoft InfoPath XML 相互運用機能アセンブリ (InfoPath 2007 専用) Microsoft.Office.Interop.InfoPath.Xml.dll
Microsoft Office 14.0 Object Library (Office の共有機能)

Microsoft Office 15.0 Object Library (Office の共有機能)
office.dll
Microsoft Office Outlook View Control (受信トレイにアクセスする Web ページおよびアプリケーションで使用可能) Microsoft.Office.Interop.OutlookViewCtl.dll
Microsoft Outlook 14.0 Object Library

Microsoft Outlook 15.0 Object Library
Microsoft.Office.Interop.Outlook.dll
Microsoft PowerPoint 14.0 Object Library

Microsoft PowerPoint 15.0 Object Library
Microsoft.Office.Interop.PowerPoint.dll
Microsoft Project 14.0 Object Library

Microsoft Project 15.0 Object Library
Microsoft.Office.Interop.MSProject.dll
Microsoft Publisher 14.0 Object Library

Microsoft Publisher 15.0 Object Library
Microsoft.Office.Interop.Publisher.dll
Microsoft SharePointDesigner 14.0 Web Object Reference Library Microsoft.Office.Interop.SharePointDesigner.dll
Microsoft SharePointDesigner 14.0 Page Object Reference Library Microsoft.Office.Interop.SharePointDesignerPage.dll
Microsoft Smart Tags 2.0 Type Library 注: スマート タグは、Excel 2010 および Word 2010 で非推奨になっています。 Microsoft.Office.Interop.SmartTag.dll
Microsoft Visio 14.0 Type Library

Microsoft Visio 15.0 Type Library
Microsoft.Office.Interop.Visio.dll
Microsoft Visio 14.0 Save As Web Type Library

Microsoft Visio 15.0 Save As Web Type Library
Microsoft.Office.Interop.Visio.SaveAsWeb.dll
Microsoft Visio 14.0 Drawing Control Type Library

Microsoft Visio 15.0 Drawing Control Type Library
Microsoft.Office.Interop.VisOcx.dll
Microsoft Word 14.0 Object Library

Microsoft Word 15.0 Object Library
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 ランタイムに指示します。

詳しくは、「方法: 自動バインディング リダイレクトを有効/無効にする」をご覧ください。