こんにちは、阿久津です。私事で恐縮ですが、このたび「Windowsの時代は終わったのか?」という新書を上梓いたしました。これまで筆者が見て触れてきたWindows OSの歴史を紐解き、同OSが成してきた功績と失敗。今後の展開を述べた内容となっています。ご興味がある方は是非書店で手に取っていただければ幸いです。

さて、ある日Internet Explorer 9でファイルのダウンロードを試していたたところ、通知バーではなく、古いダイアログが表示されました。Webサーバ側の問題なのかと思い、自身のテストサーバ(Linux+Apache2環境)で試しました。すると、ファイルによって動作が異なります(図01~02)。

図01: Wordファイルのダウンロードを試みますと、ダイアログによる操作をうながされます

図02: 同一のサーバで、ほかのファイルをダウンロードしますと、通知バーが表示されました

色々調べてみますと、関連付けたアプリケーションの実装形式によって変化するらしく、Microsoft Officeを導入していない環境では、Wordファイルのダウンロード時も通知バーが現れました。これは、アプリケーション側がCOMインターフェースを用意しているか否かで動作が異なる仕組みなのでしょう。

対象となるファイルを添付ファイルとして扱うか、インラインデータとして扱うかを宣言するContent-Dispositionヘッダーを、Webサーバに発信させることで、事なきを得ました(図03)。

図03: 「Content-Disposition: attachment」を加えることで、通知バーが現れるようになりました

しかし気になるのが、その後の動作。<開く>ボタンをクリックしますと、当たり前ですがWordが起動し、ダウンロードしたWordファイルが開きます。だが、以前のInternet Explorerでは、同ウィンドウ内でMicrosoft Officeアプリケーションのファイルを開いていました。

この仕様変更はInternet Explorer 7以降で加わったものですが、改めて気付くと自身で制御したくなりました。そこで今回は、Internet Explorer 9内でWord 2010ドキュメントを開くチューニングをお届けします。

1.管理者権限でレジストリエディターを起動します。
2.HKEY_CLASSES_ROOT \ Word.Document.12キーを開きます。
3.DWORD値「BrowserFlags」を開き、値のデータを「80000024」に変更します。
4.[F5]キーを押してから、レジストリエディターを終了させます。

これでチューニングが終了しました(図04~07)。

図04: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図05: レジストリエディターが起動したら、HKEY_CLASSES_ROOT \ Word.Document.12までキーをたどって開きます

図06: DWORD値「BrowserFlags」をダブルクリックし、値のデータを「80000024」に変更して<OK>ボタンをクリックします

図07: 操作を終えたら[F5]キーを押した後、<×>ボタンをクリックしてレジストリエディターを終了させます

早速結果を確認してみましょう。テストサーバで拡張子「.docx」を持つファイルをクリックすると現れるダイアログの<開く>ボタンをクリックしてください。従来と異なり、Internet Explorer 9上でWordファイルが開きました(図08~09)。

図08: Internet Explorer 9を再起動し、Wordファイルのリンクをクリックしますと、表示されるダイアログの<開く>ボタンをクリックします

図09: Internet Explorer 9内でWordファイルが開きました。ご覧のように編集可能です

なお、Content-Dispositionヘッダーによって強制的に表示された通知バーの<開く>ボタンをクリックした場合、関連付けられたアプリケーションであるMicrosoft Wordが起動します。これは同ヘッダーがWebブラウザの動作を強制しているため。動作検証時は気を付けましょう(図10~11)。

図10: Content-Dispositionヘッダーを発するリンクをクリックしますと、通知バーが現れます。<ファイルを開く>ボタンをクリックしてみましょう

図11: こちらはMicrosoft Wordが起動しました

今回はMicrosoft Word 2010を前提にしたチューニングですが、異なるバージョンの場合は、HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Word.Document.8キーやWord.Document.6のDWORD値「BrowserFlags」を編集対象としてください。また、Microsoft Excelの場合は、HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Excel.Sheet.8キーや、HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Excel.Sheet.12キーが編集対象となります。

なお、HKEY_CLASSES_ROOT \ Word.Document.12キーにあるDWORD「BrowserFlags」の初期データ値は「2c(10進数:44)」ですので、初期状態に戻す場合は同数値に書き換えてください。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)