2012-04-21 Excelブックを開いたとき「無効なオブジェクト ライブラリです。または定義されていないオブジェクトへの参照を含んでいます。」が発生
あらまし
2012年4月上旬, Excel 2010のマクロ有効ブックを保存しようとしたとき,エラーが発生するようになり,保存できなくなってしまいました。
また,別のExcel 2007のマクロ有効ブックを開こうとしたとき,「無効なオブジェクト ライブラリです。または定義されていないオブジェクトへの参照を含んでいます。」というエラーが発生するようになってしまいました。
対処方法を発見しましたので,お話しします。
原因
レジストリが破壊され,MSCOMCTL.OCXが参照できなくなっていたようです。
4月11日以降のWindows Updateが犯人のような気がするのですが,正確な原因は不明です。
環境
- OS : Microsoft Windows 7 Professional x64 Service Pack 1
- Excel : Microsoft Office Professional 2010バージョン14.0.6112.5000(32ビット)
注意事項は,64ビットのWindowsで32ビットのMicrosoft Officeを使っている点です。以下の構成では,再現しないのかもしれません。
- 32ビットのWindowsと,32ビットのOffice
- 64ビットのWindowsと,64ビットのOffice
対処方法
MSCOMCTL.OCXを再登録します。
登録手順は,Microsoftサポートの「文書番号 2266789」です。
ところで, 文書番号2266789は,おそらくWindows XPの話をしています。Windows 7(x64)で文書番号2266789の手順をそのまま実行すると,エラーが発生します。
以下の手順をお試しください。
(1) 「コマンドプロンプト」を管理者権限で実行する。管理者権限で実行する方法は,「コマンドプロンプト」のアイコンを右クリック。コンテキスト・メニューが表示されたら,「管理者として実行(A)」を選ぶ。コマンドプロンプトを一般ユーザの権限で実行した場合,手順(2)でエラーが発生します。
(2) 「regsvr32 C:\Windows\SysWOW64\MSCOMCTL.OCX」を入力・実行する。
MSCOMCTL.OCXの場所に注意します。文章番号2266789には,「regsvr32 C:\Windows\System32\MSCOMCTL.OCX」と書かれているのですが,64ビットWindowsでは,OCXファイルの場所が違います。このまま入力してもエラーが発生します。
以上で,Excel 2010のマクロ有効ブックが開けるようになるはずです。