Excel起動時に「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」とか「プロジェクトまたはライブラリがみつかりません」とか怒られた場合の対処法を説明します。


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

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

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

Excelを起動すると、「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」というダイアログがポップアップされます。 なんのこっちゃ

C言語でいうナル文字列を参照しちゃったような感じのエラー文ですね。おそらく主語にあたる何かが見つけられないのでしょう。

PictMasterOAでのエラーダイアログ表示

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

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

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

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

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

いろいろ調べた結果、MSCOMCTL.OCXというものを参照できていないのが原因のようです。

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

参照設定エラーと停止ボタンの位置

こいつを参照できるようにしましょう。MicrosoftのMicrosoft Visual Basic 6.0 コモンコントロールから.exeファイルをダウンロードします。 VisualBasicXXXXXX.exeというのがダウンロードできたかと思います。

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

MSCOMCTL.OCXのダウンロード確認画面

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

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

まず、exeファイルからファイルを抽出する方法です。 いろいろなツールがありますが今回はオープンソースの 7-Zip を使った方法を説明します。

Warning

同じことができるツールがいくつかありますが、ライセンスに気をつけてくださいね。企業では無料では使えないものもあります

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

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

7-Zipを使用してexeファイルからOCXを展開

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

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

regsvr32コマンドでOCXの登録に成功

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

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

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

次にVBEにて、「ツール」→「参照設定」をクリックしてください。参照しているライブラリ一覧が出ると思います。ここで「Microsoft Windows Common Controls 」を選択してください。 そして右の「参照」ボタンを押して C:\Windows\SysWoW64\MSCOMCTL.OCXを選択してください。そしてOKを押してください。

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

VBEの参照設定でMSCOMCTL.OCXが参照可能になった状態

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

まとめ

今回はExcelで動くツールPictMasterOAを例に、 64bit Windowsにて「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」とエラーが出る場合、「プロジェクトまたはライブラリがみつかりません」と言われる場合の解決方法を説明しました。 PictMasterOAに限らず、VBAを使っている場合は起きうる問題です。同じようなエラーが出た際はぜひ参考にしてみてくださいね!

Note