Windows 8 に Office 2003 をインストールするとたまにクラッシュする話を調査した
サポートされていない組み合わせに対してああだこうだ言うことはしませんが、ただ一つ言えるのは、Office2003が今でも現役だということ。
基本的にフロントエンドの方や個人の方は、絶対にOffice2016かOffice365を買ったほうが得です、というか無茶しないでください。苦しむ目にあいますから。
症状と原因
当方の環境は、Windows 8.1 Pro に Office 2013 がインストールされています。
症状は、.NET製品で「ファイルを開く」ダイアログを開いたときにクラッシュするという現象です。ExcelやVisual Studioが落ちます。
気づいたのは、Excel VBAでマクロを作っていたとき。まれにGetOpenFilename関数でダイアログを開いているところで落ちてしまうことがありました。
最初のことろはちょっとしたバグか不具合かと思っていたのですが、10回の起動に1回くらいのペースで落ちるようになりました。
そこでイベントビューワで調べてみたら、MSONSEXT.DLL
というライブラリで落ちていることが判明。
さらに、以前から現象があった Visual Studio 2013 で Visual Studio Installer Project 編集する際に使う「ファイルを開く」ダイアログでも不定期に落ちることがある問題も、同じライブラリで落ちていることが判明しました。
Access 2003をインストールしていた
問題のファイルはC:\Program Files (x86)\Common Files\Microsoft Shared\Web Folders\
の下にあるもので、更新日時が2003年の7月、バージョンが11.0.5510.0
でした。
そしてその付近(同階層)にあるフォルダー作成日時が、私がAccess 2003をインストールした日時と一致していたのです。とある案件でAccessが必要になったため、カスタムインストールしていたものです。
本当はOffice 2013のAccessをインストールするのが正解なのでしょうが、実際に納品する環境で使うものがAccess 2003だったため、互換性を重視してOffice 2003にしたのです。
なお、Office 2003 は Windows 8 をサポートしておらず、互換性はありません。
このファイルについて調べてみると、とくにShare Pointなどに使われているDLLで、Windows Server 2003やWindows XP向けのWindows Updateに更新が含まれていました。Windows Vistaも対象のようです。
https://support.microsoft.com/ja-jp/kb/907306
また、Windows 2000やWindows Me、Windows 98などにも環境によっては含まれることがあるみたいで、これについてもWindowsUpdateがある情報もありました。Windows MeにWindows Updateなんてあったかなぁ…
https://support.microsoft.com/ja-jp/kb/892211
イベントビューワの情報
すべては写すことができませんでしたが、要約すると以下の通り。
- エラーを起こしたモジュール:MSONSEXT.DLL(ver. 11.0.5510.0)
- 例外コード:
0xc0000005
- これ以外は基本的に出てきません
- 調べてみるとメモリ違反だそうです
- 障害オフセット:
0x00052b57
、0x000534d5
、0x00052b04
、0x0005136c
など
同じ問題をもている方々の情報
同じような症状を訴えている方を、英語圏ですが発見しました。
ここで3人の方が同じ症状を訴えられています。英語を読めないながら解読しましたが、状況はほぼ同じようです。
- 1人目(質問者)
- 2人目
- Windows 8 Pro
- Office 2010 インストール済み
- Visio のみ 2003 がインストールされている
- Word 2010, Excel 2010, Powerpoint 2010 でファイルを開こうとするが
MSONSEXT.DLL
を原因にしてクラッシュする
- 3人目
- Windows XP
- Office 2002 インストール済み → アンインストール
- Office 2010 インストール
- 1人目、2人目と同じ問題で Excel 2010 と Word 2010 がクラッシュする
- Office 2002 をインストールした時点で
MSONSEXT.DLL
が配置されることを確認 - Windows 7 のパソコンに Office 2010 のみインストールすると、
MSONSEXT.DLL
は配置されないことを確認
要は Office 2003(2002) が悪いんですよね、Office 2010 以降と互換性がないんですよね。
結局
今のところ、解決はしていません。もう案件は終わりましたが、今は別の案件の処理にPCを使っているため、変なことをして環境を壊したくないのです。
情報から察するに、アンインストールしてもファイルは残り、根本的な解決はできないみたいです。
ただ、Office 2003 のインストールで配置されるということは、必要なファイルなのでしょうね。
また、ファイルを開くダイアログでクラッシュするということは、シェル拡張に近いものなのかなとも考えていて、そのまま消してしまってはいけないのかと思ってしまいます。
どのように解決したらいいんでしょうね…。どなたか知っている方がいらっしゃれば教えていただきたいです……。