文書番号: 292491 - 最終更新日: 2007年8月10日 - リビジョン: 6.2

複数のバージョンの Office がインストールされている場合の Office オートメーションについて

すべて展開する | すべて折りたたむ

概要

この資料では、Office オートメーションを使用する際に、読み込まれる Office アプリケーションのバージョンを COM (Component Object Model) が判断する方法について説明します。

詳細

COM サーバーが初めてインストールまたは登録される際、サーバーのプログラム識別子 (PROGID) およびクラス識別子 (CLSID) に対応するエントリがレジストリに追加されます。これらのレジストリ設定によって、COM は、サーバーのインストール場所などのサーバーに関する情報を取得でき、サーバーの自動化が可能になります。たとえば、Excel 2000 には Excel.Application というバージョン固有の PROGID と {00024500-0000-0000-C000-000000000046} という CLSID があります。Excel 2000 には、次の COM 関連のレジストリ エントリがあります。
HKEY_CLASSES_ROOT\Excel.Application\CLSID
デフォルト値 : {00024500-0000-0000-C000-000000000046}
HKEY_CLASSES_ROOT\CLSID\{00024500-0000-0000-C000-000000000046}\LocalServer32

デフォルト値 : C:\PROGRA~1\MICROS~1\Office\EXCEL.EXE /automation
COM は、PROGID から CLSID までのレジストリ キーの値によって Excel の実行可能ファイルのインストール場所を確認し、そのファイルでオートメーションを開始できます。

複数バージョンの Office をインストールしており、それらの Office サーバーのいずれかでオートメーションを使用する場合、読み込まれるバージョンは、レジストリ内のこれらの設定によって決まります。ほとんどの場合、最後にインストールされたバージョンが、オートメーションで読み込まれるバージョンです。ただし、Word の動作は他の Office アプリケーションとは異なります。それぞれの Office オートメーション サーバーの動作の違いについて、以下に説明します。

Access、Excel、および PowerPoint の 97、2000、2002、2003、および 2007

Access、Excel、および PowerPoint では、Office セットアップ中にこれらのレジストリ キーが変更されます。これらのアプリケーションのいずれかを自動化する際に読み込まれるバージョンは、最後にインストールされたバージョンです。

Word 97

Word 97 では、Office セットアップ中にこれらのレジストリ キーが変更されます。Word を自動化する際に Word 2000 または Word 2002 のいずれかがインストールされていると、Word 97 が読み込まれるのは、このバージョンが最後にインストールされた場合だけです。

Word 2000、2002、2003、および 2007

Word 2000、2002、2003、および 2007 では、Office セットアップ中だけでなく Word が起動されるたびにこれらのレジストリ キーが変更されます。Word を自動化する際に読み込まれるバージョンは、最後に起動されたバージョンまたは最後にインストールされたバージョンです。

その他の注意点

システムに複数バージョンの Office をインストールしているときの Office オートメーションは、一般的にバージョン固有の特定の PROGID を使用して読み込むバージョンを指定できると認識されていますが (たとえば、"Excel.Application.9" の場合は Excel 2000、"Excel.Application.10" の場合は Excel 2002、"Excel.Application.11" の場合は Office Excel 2003 を読み込む)、これは正しくありません。Excel 2000 およびそれ以降のバージョンの Excel は同一の CLSID を共有しているため、これらの PROGID を使用して読み込まれるバージョンは、単に、どのバージョンが最後にインストールされたかということで決まります。

テストの目的で使用する場合は、コマンド ラインで /regserver スイッチを指定すると、特定のバージョンの Office アプリケーションを強制的に登録できます。たとえば、セットアップを実行せずに特定バージョンの Excel を強制的に登録するには、次のようなコマンド ラインを使用します。
   "c:\program files\microsoft office\office\excel.exe" /regserver
				
このスイッチは、テストや開発の目的には使用できますが、運用時の手段として使用することはお勧めできません。

複数のバージョンの Office を実行する方法、または Office の共存インストールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
290576? (http://support.microsoft.com/kb/290576/ ) 1 台のコンピュータで複数のバージョンの Office を実行する方法

この資料は以下の製品について記述したものです。
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002
  • Microsoft Word 2000
  • Microsoft Word 97 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
キーワード:?
kbexpertiseinter _ik11561 kbautomation kbgrpdso kbinfo kbpending kbvba kbvbp KB292491
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
 

サポート技術情報の翻訳