複数のOfficeの併用について~XPからようやくWindows 7 x64へ(4)の追記
(この項は、「OfficeにUAC現る~XPからようやくWindows 7 x64へ(4)」の追記として書かれたものです。)
Microsoft Office XP personalとMicrosoft Office Home and Business 2010(32bit版)とをWindows 7 x64にインストールすると、xlsx・docxファイルのみならずxls・docファイルをダブルクリックした場合も、それぞれExcel 2010、Word 2010しか起動しないのである。通常の拡張子の関連付けは機能しない。一体どうなっているのか。いろいろと調べてみた。
一、
複数のバージョンのMicrosoft Officeを併用することは、そもそも推奨されておらず、敢えて共存させる場合には、気を付けなければならないことがあるという。
◎ 必ず古いバージョンの Office を先にインストールし、順次、新しいバージョンをインストールしていかなければならない、というのである。
「各バージョンの Office スイートおよび Office プログラムのレジストリ キー、共有プログラム、ファイル名拡張子、およびその他の設定を正しく管理するために、この順序でインストールする必要が」ある、というのである(「Office 2010 スイートおよび Office 2010 プログラムを、他のバージョンの Office を実行しているコンピューターで使用する方法について」文書番号:2121447、「1 台のコンピュータで複数のバージョンの Office を実行する方法」文書番号:290576)。
◎ Officeのファイルから各アプリケーションを起動する場合は、通常のファイルの関連付けとは異なる基準で、どのバージョンのOfficeアプリケーションが起動するかが決定されている、というのである。
「複数のバージョンの Office がインストールされている場合の Office オートメーションについて」(文書番号:292491)によると概ね以下のように説明されている。
Excel及びPowerPoint では、Office セットアップ中にレジストリ キーが変更され、これらのアプリケーションのいずれかを自動化する際に読み込まれるバージョンは、最後にインストールされたバージョンだという。これらは同一のクラス識別子 (CLSID)を共有しているため、これらのプログラム識別子 (PROGID)を使用して読み込まれるバージョンは、どのバージョンが最後にインストールされたかということで決まるからだという。
これに対し、Wordは他のOfficeアプリケーションとは異なり、Officeセットアップ中だけでなく Word が起動されるたびにレジストリ キーが変更され、Word を自動化する際に読み込まれるバージョンは、最後に起動されたバージョンまたは最後にインストールされたバージョンだというのである。
Officeのオートメーション(自動化)の具体的な内容までは、よく知らないが(詳細は「Office アプリケーションの自動化」を御覧ください)、Officeファイルに関して、上掲のサイト(文書番号:2121447)には、こうある。
「エクスプローラーで Office ファイルをダブルクリックしてファイルを開く場合、以下のルールが適用されます。
注: Windows の [最近使ったファイル] で Office ファイルをダブルクリックした場合にも、このルールが
適用されます。
●ファイルを作成したバージョンのプログラムがコンピューターで実行されている場合、ファイルはそのバージョン
のプログラムで開かれます。
●Office XP では、ファイルを作成したバージョンのプログラムがコンピューターで実行されていない場合、
そのファイルは最後にインストールされたバージョンのプログラムで開かれます。
●Microsoft Access および Microsoft Word では、ファイルを作成したバージョンのプログラムがコン
ピューターで実行されていない場合、そのファイルは最後に起動したバージョンのプログラムで開かれます。
●特定のバージョンの Office に含まれるプログラムにファイルを関連付けるには、Office セットアップ
プログラムを実行し、[修復] をクリックします。これを実行すると、そのバージョンの Office に対するファイル
の関連付けが登録されます。」
但し、Word及びAccessは、「修復」を使って関連付けを行うことはできないという。
また、Officeの更新プログラムをインストールした場合にも関連付けが登録されるため、それを元に戻すには改めて「修復」する必要があるという。
さらに、複数のバージョンのWordがコンピューターにインストールされている場合、Wordを起動するとWindows インストーラーが実行され、「インストールの準備中」というメッセージが表示されることがあるとも記されている。
なお、コマンド プロンプトで「/regserver」スイッチを指定して、特定のバージョンの Excelを強制的に登録する方法があるが、Microsoftは通常の運用手段としては推奨していない。
試みに、上記文書番号:292491又は下記Microsoft Answersのページを参考にして、「"C:\Program Files (x86)\Microsoft Office\Office10\excel.exe" /regserver」と入力して実行してみた。インストーラが起動してExcel 2002の登録が行われたように見えたが、xlsファイルからは、相変わらずExcel 2010が起動する。
どうも、Win 7 64bitの環境では、この登録はうまく機能しないようである。
○Microsoft Answers参照ページ;
「Office2003と2010をインストールしてあり、2003で作成したものは2003で起動したい。ファイル名をダブルクリックすると常に2010が起動してしまう」
「[XP] ファイルを直接開こうとすると、必ず、2007のバージョンで開いてしまう」
二、
Word 2002自体を起動させてみると、「インストールの準備中」とのメッセージの後に、「この機能はエラーのため正しく動作していません。セットアッププログラムを使ってセットアップし直してください」というメッセージが出現する。
前掲の文書には、エラー・メッセージが表示されるとまでは記されていない。
そこで、改めて両Officeをアンインストールし、改めてインストールし直すことにした。
今度は指示通り、古いOffice XPを先にインストールし、続けてSP3、Office XP用更新プログラムをインストールした。
その後に、Office 2010をインストールし、同様にSP1その他の更新プログラムをインストール。
しかしながら、このWord 2002の起動時のエラーは改善しない。
数回、アンインストール・再インストールを繰り返してみたが、結果は同じである。
三、
Microsoftに問い合わせてみた。
Win 7 x64環境に両Officeをインストールした場合、同様のエラー・メッセージが表示されることが確認された、との回答があった。
「これは、Word 2002 を起動する際に、Word 2010 のインストール情報の一部を読み込む
などして、その情報を Word 2002 がエラーとして認識しているため発生している可能性が
ございます。
そのため、弊社動作環境では Office XP を、インストール CD を使用して修復を行うことで
Word 2002 の起動時のエラー メッセージが表示されなくなることが確認できました。」
ということで、以下の手順が示されている。
1. コンピューターを起動し、Office XP の CD-ROM をDVD ドライブに挿入します。
2. [メンテナンス モード オプション] 画面が表示されましたら [再インストール/修復] に
チェックをいれ、[次へ] をクリックします。
3. [Office のインストールで発生したエラーを検出して修復します] にチェックを入れ、
[完了] をクリックします。
4. 修復完了後、DVD ドライブからOffice XP のCD-ROM を取出した後、コンピューターを
再起動し、動作を確認します。
これによって、確かにエラー・メッセージは表示されなくなり、xls・docファイルからは、それぞれExcel 2002、Word 2002が起動するようになる。しかし、ひとたびWord 2010を起動すると、改めてインストーラが起動し、再び元の状態に戻ってしまう。
この現象に関して、改めてMicrosoftに確認したところ、「基本的には製品を併用されているための動作上の制限である」とのこと。これは、上述の「/regserver」のコマンド ラインが機能しないことも含め、元来、Microsoftが推奨していない複数のバージョンのOfficeの併用に伴う競合によるものであるから、致し方ないと言わざるをえない。その回答にも、「Office 製品を併用するために発生している現象の為、根本的な改善策はございません」との見解が示されている。
四、
そこで、対処法として、前記の文書(2121447)にあるWordの自動登録を無効にする方法を執ることにする。
① regeditを起動し、
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Word\Options
というレジストリ サブキーを見つける。
② 記載されているサブキーが選択されている状態で、
[編集] メニューの [新規] をポイントして、[DWORD 値 32bit] をクリックする。
③ 「NoReReg」と入力し、Enter キーを押す。
④ [NoReReg] を右クリックし、[修正] をクリック。
⑤ [値のデータ] ボックスに「1」と入力し、[OK] をクリックする。
これで、Word 2002の起動時にインストーラは起動しなくなる。もちろん、これとて推奨された方法ではないことに留意する必要がある。
また、ファイルからの起動については、前記Microsoft Answersの回答の中に、右クリックの「送る」にファイルから起動しないExcelやWordを追加して運用している例が挙がっていたので、私もそれを採用させてもらった。
Win7 x64の場合、C:\User(ユーザー)\[ユーザー名]\AppData\Roaming\Microsoft\Windows\SendToにExcel 2002及びWord 2002のショートカットを追加しておく。
Microsoft社が「根本的な改善策」はないと言明する以上、これらの姑息な方法で凌ぐほかないようである。
Microsoft Office XP personalとMicrosoft Office Home and Business 2010(32bit版)とをWindows 7 x64にインストールすると、xlsx・docxファイルのみならずxls・docファイルをダブルクリックした場合も、それぞれExcel 2010、Word 2010しか起動しないのである。通常の拡張子の関連付けは機能しない。一体どうなっているのか。いろいろと調べてみた。
一、
複数のバージョンのMicrosoft Officeを併用することは、そもそも推奨されておらず、敢えて共存させる場合には、気を付けなければならないことがあるという。
◎ 必ず古いバージョンの Office を先にインストールし、順次、新しいバージョンをインストールしていかなければならない、というのである。
「各バージョンの Office スイートおよび Office プログラムのレジストリ キー、共有プログラム、ファイル名拡張子、およびその他の設定を正しく管理するために、この順序でインストールする必要が」ある、というのである(「Office 2010 スイートおよび Office 2010 プログラムを、他のバージョンの Office を実行しているコンピューターで使用する方法について」文書番号:2121447、「1 台のコンピュータで複数のバージョンの Office を実行する方法」文書番号:290576)。
◎ Officeのファイルから各アプリケーションを起動する場合は、通常のファイルの関連付けとは異なる基準で、どのバージョンのOfficeアプリケーションが起動するかが決定されている、というのである。
「複数のバージョンの Office がインストールされている場合の Office オートメーションについて」(文書番号:292491)によると概ね以下のように説明されている。
Excel及びPowerPoint では、Office セットアップ中にレジストリ キーが変更され、これらのアプリケーションのいずれかを自動化する際に読み込まれるバージョンは、最後にインストールされたバージョンだという。これらは同一のクラス識別子 (CLSID)を共有しているため、これらのプログラム識別子 (PROGID)を使用して読み込まれるバージョンは、どのバージョンが最後にインストールされたかということで決まるからだという。
これに対し、Wordは他のOfficeアプリケーションとは異なり、Officeセットアップ中だけでなく Word が起動されるたびにレジストリ キーが変更され、Word を自動化する際に読み込まれるバージョンは、最後に起動されたバージョンまたは最後にインストールされたバージョンだというのである。
Officeのオートメーション(自動化)の具体的な内容までは、よく知らないが(詳細は「Office アプリケーションの自動化」を御覧ください)、Officeファイルに関して、上掲のサイト(文書番号:2121447)には、こうある。
「エクスプローラーで Office ファイルをダブルクリックしてファイルを開く場合、以下のルールが適用されます。
注: Windows の [最近使ったファイル] で Office ファイルをダブルクリックした場合にも、このルールが
適用されます。
●ファイルを作成したバージョンのプログラムがコンピューターで実行されている場合、ファイルはそのバージョン
のプログラムで開かれます。
●Office XP では、ファイルを作成したバージョンのプログラムがコンピューターで実行されていない場合、
そのファイルは最後にインストールされたバージョンのプログラムで開かれます。
●Microsoft Access および Microsoft Word では、ファイルを作成したバージョンのプログラムがコン
ピューターで実行されていない場合、そのファイルは最後に起動したバージョンのプログラムで開かれます。
●特定のバージョンの Office に含まれるプログラムにファイルを関連付けるには、Office セットアップ
プログラムを実行し、[修復] をクリックします。これを実行すると、そのバージョンの Office に対するファイル
の関連付けが登録されます。」
但し、Word及びAccessは、「修復」を使って関連付けを行うことはできないという。
また、Officeの更新プログラムをインストールした場合にも関連付けが登録されるため、それを元に戻すには改めて「修復」する必要があるという。
さらに、複数のバージョンのWordがコンピューターにインストールされている場合、Wordを起動するとWindows インストーラーが実行され、「インストールの準備中」というメッセージが表示されることがあるとも記されている。
なお、コマンド プロンプトで「/regserver」スイッチを指定して、特定のバージョンの Excelを強制的に登録する方法があるが、Microsoftは通常の運用手段としては推奨していない。
試みに、上記文書番号:292491又は下記Microsoft Answersのページを参考にして、「"C:\Program Files (x86)\Microsoft Office\Office10\excel.exe" /regserver」と入力して実行してみた。インストーラが起動してExcel 2002の登録が行われたように見えたが、xlsファイルからは、相変わらずExcel 2010が起動する。
どうも、Win 7 64bitの環境では、この登録はうまく機能しないようである。
○Microsoft Answers参照ページ;
「Office2003と2010をインストールしてあり、2003で作成したものは2003で起動したい。ファイル名をダブルクリックすると常に2010が起動してしまう」
「[XP] ファイルを直接開こうとすると、必ず、2007のバージョンで開いてしまう」
二、
Word 2002自体を起動させてみると、「インストールの準備中」とのメッセージの後に、「この機能はエラーのため正しく動作していません。セットアッププログラムを使ってセットアップし直してください」というメッセージが出現する。
前掲の文書には、エラー・メッセージが表示されるとまでは記されていない。
そこで、改めて両Officeをアンインストールし、改めてインストールし直すことにした。
今度は指示通り、古いOffice XPを先にインストールし、続けてSP3、Office XP用更新プログラムをインストールした。
その後に、Office 2010をインストールし、同様にSP1その他の更新プログラムをインストール。
しかしながら、このWord 2002の起動時のエラーは改善しない。
数回、アンインストール・再インストールを繰り返してみたが、結果は同じである。
三、
Microsoftに問い合わせてみた。
Win 7 x64環境に両Officeをインストールした場合、同様のエラー・メッセージが表示されることが確認された、との回答があった。
「これは、Word 2002 を起動する際に、Word 2010 のインストール情報の一部を読み込む
などして、その情報を Word 2002 がエラーとして認識しているため発生している可能性が
ございます。
そのため、弊社動作環境では Office XP を、インストール CD を使用して修復を行うことで
Word 2002 の起動時のエラー メッセージが表示されなくなることが確認できました。」
ということで、以下の手順が示されている。
1. コンピューターを起動し、Office XP の CD-ROM をDVD ドライブに挿入します。
2. [メンテナンス モード オプション] 画面が表示されましたら [再インストール/修復] に
チェックをいれ、[次へ] をクリックします。
3. [Office のインストールで発生したエラーを検出して修復します] にチェックを入れ、
[完了] をクリックします。
4. 修復完了後、DVD ドライブからOffice XP のCD-ROM を取出した後、コンピューターを
再起動し、動作を確認します。
これによって、確かにエラー・メッセージは表示されなくなり、xls・docファイルからは、それぞれExcel 2002、Word 2002が起動するようになる。しかし、ひとたびWord 2010を起動すると、改めてインストーラが起動し、再び元の状態に戻ってしまう。
この現象に関して、改めてMicrosoftに確認したところ、「基本的には製品を併用されているための動作上の制限である」とのこと。これは、上述の「/regserver」のコマンド ラインが機能しないことも含め、元来、Microsoftが推奨していない複数のバージョンのOfficeの併用に伴う競合によるものであるから、致し方ないと言わざるをえない。その回答にも、「Office 製品を併用するために発生している現象の為、根本的な改善策はございません」との見解が示されている。
四、
そこで、対処法として、前記の文書(2121447)にあるWordの自動登録を無効にする方法を執ることにする。
① regeditを起動し、
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Word\Options
というレジストリ サブキーを見つける。
② 記載されているサブキーが選択されている状態で、
[編集] メニューの [新規] をポイントして、[DWORD 値 32bit] をクリックする。
③ 「NoReReg」と入力し、Enter キーを押す。
④ [NoReReg] を右クリックし、[修正] をクリック。
⑤ [値のデータ] ボックスに「1」と入力し、[OK] をクリックする。
これで、Word 2002の起動時にインストーラは起動しなくなる。もちろん、これとて推奨された方法ではないことに留意する必要がある。
また、ファイルからの起動については、前記Microsoft Answersの回答の中に、右クリックの「送る」にファイルから起動しないExcelやWordを追加して運用している例が挙がっていたので、私もそれを採用させてもらった。
Win7 x64の場合、C:\User(ユーザー)\[ユーザー名]\AppData\Roaming\Microsoft\Windows\SendToにExcel 2002及びWord 2002のショートカットを追加しておく。
Microsoft社が「根本的な改善策」はないと言明する以上、これらの姑息な方法で凌ぐほかないようである。