エクセル2010で作ったマクロ入りファイル(.xlsm)をエクセル2007で使おうとするとエラーが出ることがあります。
「DLL読み込み時のエラーです。」と出ます。
これが表示されると、保存しようとしても、「~の保存中にエラーが検出されました。いくつかの機能を削除または修復することにより、ファイルを保存できる場合があります~」というエラーが。
こうなると保存すらできないので、なにもできない。
結論から言うと、この問題の原因は参照設定で、参照不可のライブラリにチェックが入っているからです。
参照不可のものは、このライブラリが「場所」に表示されたパスに存在しないということです。じゃあ、このチェックを外せば万事解決か。しかし、チェックを外してOKを押してもエラーが出ます。どうしても変更させたくないのか。
対処1.配布先と同じバージョンのエクセルを使う
配布先がエクセル2007を使っているのなら、開発側も2007を使ってマクロを作ります。
対処2.参照不可ライブラリのチェックを外して配布
配布先のバージョンのエクセルが必要です。
VBAの編集画面から、ツール⇒参照設定。参照不可となっているライブラリのチェックを外し、OKを押します。それを配布します。
対処3.ライブラリをダウンロードして入れる
参照不可になっている場所にダウンロードした該当ファイルを入れてみるやり方。今回、何のライブラリがないかというと、MSWORD.OLBというやつですね。
それをネットで検索してみる。今回のライブラリは検索でヒットして、ありました。ダウンロードして、Office14フォルダ内に入れます。……エラーが出なくなり、動きました。
これ以外にも最初から作り直すという方法がありますが、面倒くさそう。
エクセルだけではなく様々なところでバージョンの違いの問題は起こります。配布先がどのバージョンを使っているか、事前に確認するのが間違いがないやり方でしょう。