Office 2003 プライマリ相互運用機能アセンブリをインストールして使用する (Microsoft Office 2003 技術記事)

 

Siew Moi Khor
Art Leonard
Microsoft Corporation

January 2005
日本語版最終更新日 : 2005 年 3 月 29 日

適用対象:
    Microsoft Office 2003

要約: Office 2003 プライマリ相互運用機能アセンブリ (PIA) を入手してインストールする方法、PIA を参照する方法、およびPIA のトラブルシューティングを行う方法について説明します。サンプル プログラム ファイル内では実際のコメント行は英語で書かれていますが、この記事内では説明目的で日本語で書かれています。この記事には英語のページへのリンクも含まれています。

目次

はじめに
Office 2003 PIA を入手する
Office 2003 PIA をインストールする
Office 2003 PIA を使用する
その他のリソース

はじめに

Microsoft Office 2003 では、プライマリ相互運用機能アセンブリ (PIA) を使用することで、Office アプリケーションによって公開されている COM オブジェクトを使って作業できます。この記事では、PIA の入手方法、インストール方法、および参照方法について説明します。

PIA や相互運用機能アセンブリの詳細、および Office 2003 で公開されているインターフェイスとクラスをマネージ コードでプログラミングする方法については、それぞれのテーマに沿った多数の記事を参照してください。PIA、相互運用機能アセンブリ、それらの使用方法については、「プライマリ相互運用アセンブリ (PIA)」および「A Primer to the Office XP Primary Interop Assemblies」を参照してください。

Office によってマネージ コード向けに公開されているクラスとインターフェイスの詳細情報を提供する記事の一覧については、「その他のリソース」を参照してください。

Office 2003 PIA を入手する

以下の表は、Office 2003 で使用できる PIA を一覧しています。表 1 は、バージョン番号が同じで、同じキーで署名されている Microsoft Office 2003 アプリケーションおよびコンポーネント タイプ ライブラリを一覧しています。これらのアプリケーションのバージョン番号は 11.0.0.0 で、公開キー トークンは 71e9bce111e9429c です。

表 2 は、バージョン番号が異なり、表 1 のキーとは異なるキーで署名されている Office 2003 アプリケーションおよびコンポーネント タイプ ライブラリを一覧しています。

表 3 は、Microsoft Visual Studio .NET 2003 で提供され、Office 2003 ファミリの製品に含まれている PIA を一覧しています。

表 1. バージョン番号が同じで、同じキーで署名されている Office 2003 アプリケーションとコンポーネント タイプ ライブラリ

Office 2003 アプリケーションまたはコンポーネント プライマリ相互運用機能アセンブリ名 プライマリ相互運用機能アセンブリ名前空間
Microsoft Access 11.0 Object Library Microsoft.Office.Interop.Access.dll Microsoft.Office.Interop.Access
Microsoft Excel 11.0 Object Library Microsoft.Office.Interop.Excel.dll Microsoft.Office.Interop.Excel
Microsoft Forms 2.0 Object Library Microsoft.Vbe.Interop.Forms.dll Microsoft.Vbe.Interop.Forms
Microsoft FrontPage 6.0 Page Object Reference Library Microsoft.Office.Interop.FrontPageEditor.dll Microsoft.Office.Interop.FrontPageEditor
Microsoft FrontPage 6.0 Web Object Reference Library Microsoft.Office.Interop.FrontPage.dll Microsoft.Office.Interop.FrontPage
Microsoft Graph 11.0 Object Library Microsoft.Office.Interop.Graph.dll Microsoft.Office.Interop.Graph
Microsoft InfoPath 1.0 Type Library Microsoft.Office.Interop.InfoPath.dll Microsoft.Office.Interop.InfoPath
Microsoft Office 11.0 Object Library Office.dll Microsoft.Office.Core
Microsoft Office Outlook View Control Microsoft.Office.Interop.OutlookViewCtl.dll Microsoft.Office.Interop.OutlookViewCtl
Microsoft Office Web Components 11.0 Microsoft.Office.Interop.Owc11.dll Microsoft.Office.Interop.Owc11
Microsoft Outlook 11.0 Object Library Microsoft.Office.Interop.Outlook.dll Microsoft.Office.Interop.Outlook
Microsoft PowerPoint 11.0 Object Library Microsoft.Office.Interop.PowerPoint.dll Microsoft.Office.Interop.PowerPoint
Microsoft Project 11.0 Object Library Microsoft.Office.Interop.MSProject.dll Microsoft.Office.Interop.MSProject
Microsoft Publisher 11.0 Object Library Microsoft.Office.Interop.Publisher.dll Microsoft.Office.Interop.Publisher
Microsoft SmartTag 2.0 Type Library Microsoft.Office.Interop.SmartTag.dll Microsoft.Office.Interop.SmartTag
Microsoft Visio 11.0 Type Library Microsoft.Office.Interop.Visio.dll Microsoft.Office.Interop.Visio
Microsoft Visual Basic 6.0 Extensibility Microsoft.Vbe.Interop.dll Microsoft.Vbe.Interop
Microsoft Word 11.0 Object Library Microsoft.Office.Interop.Word.dll Microsoft.Office.Interop.Word

表 2. バージョン番号が異なり、異なるキーで署名されている Office 2003 アプリケーションとコンポーネント タイプ ライブラリ

オブジェクト ライブラリ プライマリ相互運用機能アセンブリ名 バージョン番号 公開キー トークン
Microsoft DAO 3.6 Object Library Dao.dll 10.0.4504.0 31bf3856ad364e35
Microsoft Windows Common Controls 6.0 Mscomctl.dll 10.0.4504.0 31bf3856ad364e35

表 3. Visual Studio .NET 2003 で提供され、Office 2003 に含まれている PIA

オブジェクト ライブラリ プライマリ相互運用機能アセンブリ名 バージョン番号 公開キー トークン
Microsoft ActiveX Data Objects 2.5-2.8 Library Adodb.dll 7.0.3300.0 b03f5f7f11d50a3a
Microsoft Data Source Interfaces Msdatasrc.dll 7.0.3300.0 b03f5f7f11d50a3a
OLE Automation Stdole.dll 7.0.3300.0 b03f5f7f11d50a3a

Office 2003 をインストールする前に、.NET Framework 1.1 のインストール時に Office 2003 PIA を入手する

Microsoft Office 2003 のインストールと同時に Office PIA を入手する場合は、最初に Microsoft .NET Framework Version 1.1 をインストールしておく必要があります。Office 2003 をインストールする前に .NET Framework 1.1 をインストールしておかないと、Office 2003 インストール時に PIA がインストールされません。

Office 2003 をインストールしてから .NET Framework 1.1 をインストールする場合は、「Office 2003 をインストールした後、.NET Framework 1.1 のインストール時に Office 2003 PIA を入手する」で説明する手順に従って PIA をインストールできます。

Office 2003 をインストールする前に .NET Framework 1.1 をインストールしておかないと、PIA をインストールするオプションが Office のカスタム セットアップに表示されません。最初に .NET Framework 1.1 をインストールした場合は、図 1 に示すように、カスタム セットアップで使用できるオプションの一覧に [.NET プログラミング サポート] が表示されます。

図をクリックすると拡大表示できます
図 1. Office 2003 セットアップの [.NET プログラミング サポート] オプション (図をクリックすると拡大表示できます)

Office 2003 をインストールした後、.NET Framework 1.1 のインストール時に Office 2003 PIA を入手する

Microsoft Office 2003 をインストールした後 Microsoft .NET Framework Version 1.1 をインストールするときに PIA を入手する場合は、Office セットアップを変更する必要があります。

Office 2003 セットアップを変更するには

  1. 図 2 に示すように、[Microsoft Office 2003 セットアップ] ダイアログ ボックスの [メンテナンス モード オプション] 画面で、[機能の追加/削除] をクリックし、[次へ] をクリックします。

    図をクリックすると拡大表示できます
    図 2. Office 2003 セットアップの変更 (図をクリックすると拡大表示できます)

  2. [アプリケーションごとにオプションを指定してインストール] チェック ボックスをオンにし、[次へ] をクリックします。

  3. アプリケーション固有のノードを展開します。たとえば、Microsoft Office Excel 2003 PIA を入手するには、[Microsoft Office Excel] ノードを展開し、[.NET プログラミング サポート] をクリックします。図 3 に示すように、更新オプションを選択するために [.NET プログラミング サポート] の隣のドロップダウン矢印をクリックし、[マイ コンピュータから実行] をクリックします。[初めて実行するときにインストール] は選択しないでください。

    図をクリックすると拡大表示できます
    図 3. [.NET プログラミング サポート] の更新オプションの選択 (図をクリックすると拡大表示できます)

    注: [マイ コンピュータから実行] を選択すると、現在選択している機能 (たとえば、".NET プログラミング サポート") がハード ディスクにインストールされ、格納されます。[マイ コンピュータからすべて実行] を選択すると、現在選択している機能とそのすべてのサブ機能がハード ディスクにインストールされ、格納されます。".NET プログラミング サポート" 機能にはサブ機能がないので、[マイ コンピュータから実行] を選択しても [マイ コンピュータからすべて実行] を選択しても結果は同じになります。[初めて実行するときにインストール] を選択すると、".NET プログラミング サポート" 機能を初めて使用するときまで、この機能がハード ディスクにインストールされません。初めて使用するときに ".NET プログラミング サポート" 機能をインストールするには、Office 2003 のインストールに使用した CD-ROM またはネットワーク サーバーにアクセスする必要があります。

  4. [更新] をクリックします。

  5. Office 2003 アプリケーション固有の他の PIA をインストールするには、そのアプリケーション ノードを展開し、[.NET プログラミング サポート] をクリックします。

    スマート タグ .NET プログラミング サポート、Microsoft Forms 2.0 .NET プログラミング サポート、または Microsoft Graph .NET プログラミング サポートをインストールするには、図 4 に示すように、[Office ツール] ノードを展開し、適切な .NET プログラミング サポートを選択します。ここでも、開発コンピュータでインストールを行っている場合は、[マイ コンピュータから実行] を選択するようにしてください。[初めて実行するときにインストール] は選択しないでください。

    図をクリックすると拡大表示できます
    図 4. [Office ツール] ノード .NET プログラミング サポートのオプション (図をクリックすると拡大表示できます)

Office 2003 PIA をインストールする

Office 2003 の標準インストールで PIA をインストールする

Microsoft .NET Framework Version 1.1 が既にインストールされている場合は、Microsoft Office 2003 の標準インストールで以下の 5 つの PIA が既定でインストールされます。

  • Stdole.dll
  • Adodb.dll
  • Msdatasrc.dll
  • Microsoft.Vbe.Interop.dll
  • Office.dll

Microsoft Access または Microsoft Office Web Components 2003 がインストールされている場合は、Mscomctl.dll PIA も既定でインストールされます。

Office 2003 の完全インストールで PIA をインストールする

Microsoft Office 2003 の標準インストールではなく、完全インストールを実行すると、PIA がグローバル アセンブリ キャッシュに自動的にインストールされます。PIA を開発コンピュータにインストールしている場合は、完全インストールを実行してください。標準インストールの場合、PIA は要求時にインストールされます。

注: 開発コンピュータで PIA が必要な場合は、Office 2003 の標準インストールを実行しないでください。Microsoft Visual Studio .NET と Microsoft Visual Studio .NET 2003 には、参照する COM オブジェクトの PIA が要求時にインストールされるように設定されていると、Visual Studio 生成の相互運用機能アセンブリの作成が必要になる、という問題があります。この問題を回避するには、参照する Office 2003 PIA がグローバル アセンブリ キャッシュにインストールされていることを確認してから、開発作業を開始してください。開発作業を行わないコンピュータでは、Office 2003 の標準インストールを行っても問題ありません。Office カスタム セットアップの手順は、「Office 2003 をインストールした後、.NET Framework 1.1 のインストール時に Office 2003 PIA を入手する」で説明した手順と同じです。

Office 2003 PIA のインストール場所を見つける

Microsoft Office 2003 プライマリ相互運用機能アセンブリ (PIA) は、drive:/WINDOWS/assembly または drive:/WINNT/assembly のグローバル アセンブリ キャッシュにインストールされます。

たとえば、Microsoft Office Excel 2003 PIA がグローバル アセンブリ キャッシュにインストールされていると、図 5 に示すように、グローバル アセンブリ キャッシュにインストールされているグローバル アセンブリ名 Microsoft.Office.Interop.Excel、バージョン 11.0.0.0、および公開キー トークン 71e9bce111e9429c が表示されます。これらの情報が表示されない場合は、Excel PIA はインストールされていません。

図をクリックすると拡大表示できます
図 5. グローバル アセンブリ キャッシュにインストールされている Office 2003 PIA (図をクリックすると拡大表示できます)

Office 2003 PIA を使用する

Office 2003 マネージ コード型の PIA を参照する

以下の手順に従って、1 つ以上の Office 2003 PIA を参照できます。

Office 2003 マネージ コード型の PIA を参照するには

  1. Microsoft Visual Studio .NET または Microsoft Visual Studio .NET 2003 で、マネージ コード ソリューション (.sln) ファイルを開きます。

  2. [ソリューション エクスプローラ] ウィンドウで、[参照設定] ノードを展開します。

  3. [参照設定] を右クリックし、[参照の追加] をクリックして、図 6 に示す [参照の追加] ダイアログ ボックスを開きます。

  4. [COM] タブをクリックします。

    図をクリックすると拡大表示できます
    図 6. [COM] タブが選択された [参照の追加] ダイアログ ボックス (図をクリックすると拡大表示できます)

  5. [コンポーネント名] ボックスで、参照するオブジェクト タイプ ライブラリまでスクロールします。たとえば、図 6 では、[Microsoft Office 11.0 Object Library] が選択されています。

  6. コンポーネントを強調表示し、[選択] をクリックします。タブの最下部にある [選択されたコンポーネント] ボックスに、選択したコンポーネントが一覧表示されます。

  7. [OK] をクリックします。図 7 に示すように、[参照設定] ノードに追加された [Microsoft.Office.Core] が [ソリューション エクスプローラ] に表示されます。

    Aa159923.officeprimaryinteropassembliesfaq_fig7(ja-jp,office.11).jpg
    図 7. [参照設定] ノードに追加された Microsoft.Office.Core PIA

[Microsoft.Office.Core] 参照を強調表示し、この参照のプロパティを [プロパティ] ウィンドウで確認すると、[ローカル コピー] プロパティが [False] に設定されています。[パス] プロパティは、グローバル アセンブリ キャッシュ内の場所を参照し、バージョン番号は 11.0.0.0 になっています。Microsoft Windows XP オペレーティング システムでは、このプロパティは次のようになります。

C:\WINDOWS\assembly\GAC\office\11.0.0.0__71e9bce111e9429c\office.dll

他の Office 2003 タイプ ライブラリへの参照を追加するには、手順 3. ~ 手順 7. を繰り返します。手順 5. では、参照するアプリケーションまたはコンポーネント オブジェクト タイプ ライブラリを選択します。

Office 2003 PIA への参照を確認する

PIA を正しく参照したかどうかを確認するには、PIA の [ローカル コピー] プロパティが [False] に設定されていることを確認してください。Windows XP オペレーティング システムでは、たとえば Microsoft Office 2003 スマート タグ PIA を参照している場合、[パス] プロパティは次のように表示されます。

C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.SmartTag\
    11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.SmartTag.dll

[プロパティ] ウィンドウの [ローカル コピー] プロパティが [True] に設定されている場合は、ソリューションによってスマート タグ PIA ではなく、相互運用機能アセンブリが参照されています。ここでは公式の PIA を使用することがベスト プラクティスなので、相互運用機能アセンブリを削除して、PIA を再び参照します。相互運用機能アセンブリを削除するには、[参照設定] ノードで相互運用機能アセンブリ名を右クリックし、[削除] をクリックします。

注: PIA の更新オプションとして [初めて実行するときにインストール] ではなく、[マイ コンピュータから実行] を選択している場合、または Office 2003 の完全インストールを実行している場合にのみ、相互運用機能アセンブリを削除して PIA を再び参照する操作を実行できます。この理由の詳細については、「Office 2003 をインストールした後、.NET Framework 1.1 のインストール時に Office 2003 PIA を入手する」を参照してください。

グローバル アセンブリ キャッシュに Office 2003 PIA がインストールされていることがわかっているのに、PIA ではなく相互運用機能アセンブリを入手し続ける場合、一部のタイプ ライブラリ登録の特定の PIA 登録が壊れている可能性があります。PIA 登録に関する問題を解決するには、「PIA と相互運用機能アセンブリを区別する」を参照してください。

PIA と相互運用機能アセンブリを区別する

Office アプリケーションまたはコンポーネント オブジェクト タイプ ライブラリを参照するときに、グローバル アセンブリ キャッシュに Microsoft Office 2003 PIA がインストールされていることがわかっているのに、PIA ではなく相互運用機能アセンブリを入手し続ける場合、一部のタイプ ライブラリ登録の特定の PIA 登録が壊れている可能性があります。PIA 登録を解決するために、以下のいずれかの操作を実行できます。

注: 以下のいずれかのオプションを実行する前に、Microsoft Office ダウンロードから Microsoft Office 2003 Service Pack 1 をインストールする必要があります。

  • Office の修復を実行します。

  • 現象の起きた PIA を再インストールします。再インストールするには、Office セットアップを再実行してください (「Office 2003 をインストールした後、.NET Framework 1.1 のインストール時に Office 2003 PIA を入手する」を参照してください)。

  • 現象の起きた PIA で RegAsm ツールを実行してグローバル アセンブリ キャッシュから PIA を再登録します。たとえば、次のように、Office PIA (Office PIA 名前空間は Microsoft.Office.Core) で RegAsm を実行します。

    %systemroot%\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe
    %systemroot%\assembly\GAC\Office\11.0.0.0__71e9bce111e9429c\
        Office.dll
    

    VBIDE PIA (VBIDE PIA 名前空間は Microsoft.Vbe.Interop) で RegAsm を実行するには

    %systemroot%\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe
    %systemroot%\assembly\GAC\Microsoft.Vbe.Interop\
        11.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.dll
    

    Microsoft Office Excel 2003 PIA (Excel PIA 名前空間は Microsoft.Office.Interop.Excel) で RegAsm を実行するには

    %systemroot%\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe
    %systemroot%\assembly\GAC\Microsoft.Office.Interop.Excel\
        11.0.0.0__71e9bce111e9429c\ Microsoft.Office.Interop.Excel.dll
    

    Microsoft Office 2003 スマート タグ PIA (スマート タグ PIA の名前空間は Microsoft.Office.Interop.SmartTag) で RegAsm を実行するには

    %systemroot%\Microsoft.NET\Framework\v1.1.4322\RegAsm.exe
    %systemroot%\assembly\GAC\Microsoft.Office.Interop.SmartTag\
        11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.SmartTag.dll
    

Office 2003 PIA の再配布を回避する

どのような場合でも、ソリューション セットアップ パッケージで Microsoft Office 2003 PIA を再配布しないでください。Office 2003 が、Office 2003 PIA の唯一の配布メカニズムです。Office 2003 PIA は、完全インストール、標準インストール、またはカスタム インストールによって、グローバル アセンブリ キャッシュに自動的にインストールしたり、要求時にエンドユーザーのコンピュータにインストールすることができます。

セットアップには PIA を含めないようにしてください。Office 2003 PIA をセットアップ プロジェクトに含めると、エンドユーザーのコンピュータの Office 2003 所有権や PIA コンポーネントの登録が破損することがあります。その結果、アンインストール中に Office 2003 所有権や PIA コンポーネントの登録がエンドユーザーのコンピュータから誤って削除されることになります。

たとえば、ユーザーがそのセットアップ パッケージをインストールすると、セットアップに含まれている Office 2003 PIA で、以前にインストール済みのコンポーネントの登録が上書きされます。ユーザーがこのソリューションをアンインストールすると、PIA 登録が壊れることになり、エンドユーザーのコンピュータはこれらのコンポーネントの .NET プログラミング サポートのない状態になります。

注: 通常、Microsoft Visual Studio .NET および Microsoft Visual Studio .NET 2003 セットアップ プロジェクトにより、一部の PIA がセットアップ パッケージに自動的に含められます。エンドユーザーのコンピュータでは、必ず Office 2003 PIA をセットアップ パッケージから除外するようにしてください。

Stdole.dll PIA、Adodb.dll PIA、および Msdatasrc.dll PIA の再配布を回避する

表 3 に示すように、Microsoft Office XP とは異なり、Microsoft Office 2003 には Stdole.dll PIA、Adodb.dll PIA、および Msdatasrc.dll PIA が同梱されています。すべての Office 2003 PIA と同様に、これらの PIA を再配布しないでください。Office 2003 に含まれている PIA を再配布してはいけない理由の詳細については、「Office 2003 PIA の再配布を回避する」を参照してください。

Office XP PIA および Office 2003 PIA を使用する

PIA はバージョン固有なので、アプリケーションのバージョンと同じバージョンの PIA を使用する必要があります。たとえば、Microsoft Office XP マネージ コード ソリューションを Microsoft Office 2003 に移行する場合、Office XP マネージ コード ソリューションを Office 2003 PIA を使って再コンパイルする必要があります。

また、Office XP と Office 2003 の両方で同じソリューションを機能させる場合は、2 つの異なるセットアップ パッケージが必要になります (1 つは Office XP 用、もう 1 つは Office 2003 用)。Office XP 用の PIA の配置は、Office 2003 用の PIA の配置と大きく異なります。この違いの詳細については、Office XP PIA ダウンロードに含まれている ReadMe ファイルを参照してください。「Office 2003 PIA の再配布を回避する」で強調しているように、ソリューション配置シナリオによって Office 2003 PIA が再配置されてはいけません。ソリューションが Office 2003 PIA に依存している場合は、Office 2003 を使用して PIA が配布される必要があります。

その他のリソース

Office の PIA やタイプ情報などで公開されているマネージ コード、インターフェイス、コクラスを使用した Microsoft Office 2003 のプログラミングをより詳しく理解することに興味がある方は、以下の書籍、記事、ダウンロードを調査してください (以下のリンクには、英語ページが表示されるものもあります)。