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 で処理します。コマンドプロンプトを 管理者権限で開いて、「regsvr32 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を使っている場合は起きうる問題です。同じようなエラーが出た際は是非参考にしてみてくださいね!
PictMasterOA さまのブログにも対処法が投稿されました!
コメント
図解で示されてるので問題ないですが念ため
regsrv32 MSCOMCTL.OCX ←スペルが違ってます。
コメントありがとうございます!ご指摘の通りですね。。修正いたしました!ありがとうございました!
すごいですね~解決しました。
最後にエクセルファイルを保存しないとだめなようでした。