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のマクロ有効ブックが開けるようになるはずです。

関連リンク