読者です 読者をやめる 読者になる 読者になる

手続き型音楽の日常

関数型音楽に乗り換えたい

Windows 8 に Office 2003 をインストールするとたまにクラッシュする話を調査した

サポートされていない組み合わせに対してああだこうだ言うことはしませんが、ただ一つ言えるのは、Office2003が今でも現役だということ。

基本的にフロントエンドの方や個人の方は、絶対にOffice2016かOffice365を買ったほうが得です、というか無茶しないでください。苦しむ目にあいますから。

症状と原因

当方の環境は、Windows 8.1 Pro に Office 2013 がインストールされています。

症状は、.NET製品で「ファイルを開く」ダイアログを開いたときにクラッシュするという現象です。ExcelVisual 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 2003Windows XP向けのWindows Updateに更新が含まれていました。Windows Vistaも対象のようです。

https://support.microsoft.com/ja-jp/kb/907306

また、Windows 2000Windows Me、Windows 98などにも環境によっては含まれることがあるみたいで、これについてもWindowsUpdateがある情報もありました。Windows MeにWindows Updateなんてあったかなぁ…

https://support.microsoft.com/ja-jp/kb/892211

イベントビューワの情報

すべては写すことができませんでしたが、要約すると以下の通り。

  • エラーを起こしたモジュール:MSONSEXT.DLL(ver. 11.0.5510.0)
  • 例外コード:0xc0000005
    • これ以外は基本的に出てきません
    • 調べてみるとメモリ違反だそうです
  • 障害オフセット:0x00052b570x000534d50x00052b040x0005136cなど

同じ問題をもている方々の情報

同じような症状を訴えている方を、英語圏ですが発見しました。

Microsoft word crashing

ここで3人の方が同じ症状を訴えられています。英語を読めないながら解読しましたが、状況はほぼ同じようです。

  • 1人目(質問者)
    • Windows 8 Pro
    • Office 2010 インストール済み
    • Visio のみ 2003 がインストールされている
    • Word 2010 がMSONSEXT.DLLを原因にしてクラッシュする(ときどき)
    • 体験版の Visio 2013 をインストールしたが改善せず
  • 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 のインストールで配置されるということは、必要なファイルなのでしょうね。

また、ファイルを開くダイアログでクラッシュするということは、シェル拡張に近いものなのかなとも考えていて、そのまま消してしまってはいけないのかと思ってしまいます。

どのように解決したらいいんでしょうね…。どなたか知っている方がいらっしゃれば教えていただきたいです……。