エクセルで「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」というエラーに遭遇したとき
弊社のお客様には、エクセルで作成した社内システムをお持ちのお客様もいらっしゃいます。
先日、とあるマシンでエクセルのシステムを起動したところ、「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」というエラーで起動できないという連絡をいただきました。
「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」って何でしょうね、日本語になっていませんが、主語になる何かが特定できていないのでしょうね。
通常このエラーが出るときは、VBEのツールー>参照 を見ると、参照できないコンポーネントがあり、そのためのエラーである場合がほとんどです。しかし今回は見当たりませんでした。
コンポーネントに相違があるということであたりをつけて、正常に動いているPCとあやしそうな箇所のDLLのバージョンを見比べていったら同じOfficeバージョンなのに、DLLに違うバージョンのものを発見。
同じバージョンでも、セキュリティパッチの適用有無によって、コンポーネントのマイナーバージョンが異なっていました。しかもこれにより、オブジェクトの仕様がかわっってしまい、ロードできないということだった。
VBEのツールー>参照に見当たらなかったのはエクセル標準のコンポーネントだから。
しかしこんなエラーメッセージからよく原因がみつけられたものだ。不幸中の幸い。
ちなみに、「はこのマシンでは利用できないため、オブジェクトを読み込めませんでした」のエラーが発生したエクセルファイルは、上書き保存もしていないのに、該当するオブジェクトを利用しているVBAコードが欠落しもう正常に動かないようになってしまうということも発見。
新環境で試すときはマスターはとっておいて、そのマシンにコピーして使うようにしないといけませんね。