Excelで「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」が出た時の対処法

どうも、ながやすです。

Windows7 64bit & Excel 2010 にて、ExcelでPictMasterOAを使おうとしたら、起動時に VBA で「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」とか「プロジェクトまたはライブラリがみつかりません」とか怒られて起動できませんでした。
その解決方法を調べたので、公開します。

PictMasterOA に限らず、Windows 64bit を使っていると起こる可能性のある問題のようです。もし同様の問題が起きたら、試してみてください。

スポンサーリンク

「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」

Excelを起動すると、「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」というダイアログがポップアップされます。なんのこっちゃ。C言語でいうナル文字列を参照しちゃったような感じのエラー文ですね。おそらく主語にあたる何かが見つけられないのでしょう。

「プロジェクトまたはライブラリがみつかりません」

今度は VBE(Visual Basic Edtor)が開き、「プロジェクトまたはライブラリがみつかりません」というエラーが出ます。どうも VBA の Trim 関数が見つからないようです。

何度か再実行してみても、同じエラーが出ます。はてさて。

必要なファイル MSCOMCTL.OCX をダウンロード

いろいろ調べた結果、「MSCOMCTL.OCX」というものを参照できていないのが原因のようです。
VBE の「ツール」→「参照設定」をクリックしてみます。すると、下記のようにエラーが出ています。
もし、「参照設定」がひらけない場合は、デバッガが動作している可能性があります。停止ボタンを押してデバッガを止めてください。音楽プレーヤーと同じようなアイコンです。下図では赤丸で囲んでいます。

こいつを参照できるようにしましょう。下記のMicroSoftのサイトから.exeファイルをダウンロードします。

Microsoft Visual Basic 6.0 コモン コントロール

VisualBasicXXXXXX.exe というのがダウンロードできたかと思います。ダブルクリックすると何かが実行されて「更新できました!」とダイアログが出ます。それで問題が解決する人もいるそうですが、私の場合は解決できませんでした。症状変わらず……

exeファイルから自力で必要なファイルを抜き出そう

本当はVisualBasicXXXXXX.exeを実行したら C:\Windwos\system32\ か C:\Windwos\SysWoW64\ あたりにお目当のMSCOMCTL.OCXを展開して欲しかったのですが、どうもやってくれない場合もあるようです。
そこで、 .exe から該当ファイルを抜き出して自分で処理することにします。

まず、exe ファイルからファイルを抽出する方法です。いろいろなツールがありますが今回はオープンソースの「7-Zip」を使った方法を説明します。同じことができるツールがいくつかありますが、ライセンスに気をつけてくださいね。企業では無料では使えないものもあります

まず、7-Zip 紹介(窓の杜)
からインストーラをダウンロードします。そして、えいやっとインストールします。ぽちぽち押していけば大丈夫です。

インストールが終わったら、早速 exe ファイルを展開します。exeを右クリックして展開できます。下記の図を参考にしてみてください。

展開したファイルの中に「MSCOMCTL.OCX」というファイルがあると思います。こいつを C:\Windwos\SysWoW64\ へコピーします。

さらにこいつを regsvr32 で処理します。コマンドプロンプトを 管理者権限で開いて、「regsrv32 MSCOMCTL.OCX」とコマンドを叩きます。すると「mscomctl.ocxのDllRegsiterSeverは成功しました」とポップアップが出ます。下記の図を参考にやってみてください。

これで、 MSCOMCTL.OCX が使える準備ができました。あとはExcel側の設定です。

Excelの参照ライブラリの設定

MSCOMCTL.OCX を参照する設定をします。Excelを開いてVBE(Visual Basic Edtor) を開きます。ショートカットキー Alt+F11 を押すか、「開発」→「Visual Basic」と押します。するとVBEが開きます。

次にVBEにて、「ツール」→「参照設定」をクリックしてください。参照しているライブラ一覧が出ると思います。ここで「Microsoft Windows Common Controls 」を選択してください。そして右の「参照」ボタンを押してC:\Windwos\SysWoW64\MSCOMCTL.OCX を選択してください。そしてOKを押してください。当初は「参照不可」となっていはずですが、今回は下記のように無事に参照できるはずです

もし、「参照設定」がひらけない場合は、デバッガが動作している可能性があります。停止ボタンを押してデバッガを止めてください。音楽プレーヤーと同じようなアイコンです。下図では赤丸で囲んでいます。

あとはExcelを再起動すれば、無事にエラーが出なくなっているはずです!

まとめ

今回はExcelで動くツールPictMasterOAを例に、64bit Windows にて「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」とエラーが出る場合、「プロジェクトまたはライブラリがみつかりません」と言われる場合の解決方法を説明しました。

PictMasterOA に限らず、VBAを使っている場合は起きうる問題です。同じようなエラーが出た際は是非参考にしてみてくださいね!