32bit版をインストールしてみましたが状況は変わらずでした。64bit版、32bit版、区別なしにエラーになってしまう問題ということになります。詳細は次のようなものです。エラーの内容が変わりました。ところで下記のエラーがでます。'-2147024770(8007007e)':オートメーションエラーです。指定されたモジュールが見つかりません。Files\System\ado\msado15.dll"このようになっています。解決方法ご存知の方おられましたら、教えてください。検索しまくりましたが、解決策はみつかりませんでした。票1正常動作するほうは、32bit版Excelをインストールしたことがあり削除してから64bit版Excelをインストールしました。異常動作するほうは、64bit版Excelしかいれてないです。32bit版をインストールしてみましたが状況は変わらずでした。msado15.dllはMDACと呼ばれるコンポーネントの一部です。MDACは元々Officeチームが開発しOfficeに同梱されていたものですが、単独で使われる需要が増えたためWindowsに同梱されるようになりました。この時点では32bitバージョンしか存在していません。Vista以降はWindowsチームが開発を引き継ぎ単体配布されなくなりましたが、64bitバージョンも提供されるようになっています。このような経緯のため32bit版Excelをインストールしたかどうかは無関係です。Excelを起動し直すとなぜか登録が下記の32bitのものに切り替わります。問題のPCで新規ユーザーを作成して切り分け確認をしてみてください。新規ユーザーで再現しなければユーザープロファイルの破損が疑われます。再現すればPC自体の破損です。投稿内容を読む限り前者と推測しますが、確かなことは言えません。32bit版フォルダの中身を64bit版フォルダの中身で上書きしたところ、無事に動いています。Files下とは言えWindowsに同梱されるファイルですのでこのような行為は推奨できません。言う「何もしていないのに壊れた」の一因になります。このような行為を行うのであればユーザープロファイル・PC自体がどのように破損していても不思議ではありません。海外掲示板などをみていると、これは、MDAC地獄というもののようです。今回の場合は、海外掲示板で紹介されている"CompChecker"というプログラムを入れても修復不可能でした。XP/2003までしか対応していないようです。Vista以降や64bit版MDACは考慮できていないわけで、このツールでのチェック結果にあまり意味がありません。DLLは実行コードとは別にタイプライブラリと呼ばれる型情報を持っていてLIBIDという識別子で管理されています。LibraryのLIBIDは{B691E011-1797-432E-907A-4D8C69339129}でありレジストリのHKEY_CLASSES_ROOT\TypeLib下に見つかるはずです。各クラスもCLSIDで管理されていてADODB.StreamクラスのCLSIDは{00000566-0000-0010-8000-00aa006d2ea4}でありレジストリのHKEY_CLASSES_ROOT\CLSID下に見つかるはずです。Files\System\ado\msado15.dllというファイルPathは参考情報にとどめ、前述のLIBIDやCLSIDを優先します。(同じPathに同じDLLが存在する保証はありませんし。{B691E011-1797-432E-907A-4D8C69339129}が記録され、再度開く際にはレジストリに設定されているパスから開きます。(x86)\~に更新されるのはレジストリにそう登録されているからと推測します。HKEY_CLASSES_ROOTハイブのレジストリを参照しているわけですが、この実体はHKEY_LOCAL_MACHINE\Software\ClassesとHKEY_CURRENT_USER\Software\Classesをマージしたものでどちらが破損しているかで状況が変わります。Windows上の32bitアプリケーションから参照した場合はさらに複雑なルールでマージされます。正常に動作するPCとこれらのレジストリを比較してみることで破損状況を確認することはできますが、破損個所がここだけに限られるか疑問ですし、Windowsの再インストールをお勧めします。個の銅バッジありがとうございます。64bitをインストールしていました。Files下とは言えWindowsに同梱されるファイルですのでこのような行為は推奨できません。言う「何もしていないのに壊れた」の一因になります。おっしゃるとおりでした。VBA側は動いたものの、VBScript側が不具合を起こすという状況になってしまったので、まったく、正しい解決策ではなかったです。何かのインストールの問題かとおもって、再インストールしても、問題が解決しませんでした。64bit版だと、不具合がでる場合があるようです。確実に不具合が出る、というわけではなさそうで、自分の環境に依存しているような気もしています。参照設定するライブラリのパス指定が自動化されているらしく、32bit版と64bit版を切り分けて動作確認などができない様子でした。CompCheckerなどの情報ありがとうございました。さん、コメントや自己回答に書かれた内容のうち、追加情報に関しては質問文に追記してください。4:29ありがとうございます。非常に丁寧に説明していただき、理解できてきました。なんにせよ、Windowsの再インストールの方が解決できそうですので、そのようにしてみます。詳細な説明の手間をかけていただき、何度もですが、ありがとうございました。|-232bit版の配置されているところに、64bit版を上書きするという方法で、なんとか動かすことはできましたが、他の部分で不具合が起きたので、お知らせします。Files\System\ado\msado15.dll"このように正しいときでした。直ったか!と思って、Excelを起動し直すとなぜか登録が下記の32bitのものに切り替わります。HKEY_CLASSES_ROOT\TypeLib{22813728-8BD3-11D0-B4EF-00A0C9138CA4}\6.0\0\win32ここには、%CommonProgramFiles%\System\ado\msadomd.dllこのように書かれていましたが、ここに、win64と記載して直るのかどうかは検証しませんでした。解決策32bit版フォルダの中身を64bit版フォルダの中身で上書きしたところ、VBA側は動きました。VBScriptの同様のコードが実行できなくなります。コメントでもいただきましたが、他のソフトウェアが動かなくなる可能性も大いにあるので、お勧めしません。いちおう、手順を書いておきます。通常は、フォルダ置き換えなどできないので、takeownコマンドで所有権を得る必要がありました。64bit版が32bit版フォルダを参照しても、実際には64bit版のdllを参照する、ということができました。(もちろん32bit版フォルダの中身はバックアップを取っておきました)エラー番号で検索してヒットした海外掲示板の情報もみたのですが、MDAC地獄と呼ばれていました。今回の場合は、そういうところで紹介されていた"CompChecker"というプログラムを入れても修復不可能でした。※追記(上記も一部編集しました。)VBA側は動いたものの、VBScriptのADODB.Streamを使う部分(テキストファイルをUTF-8で読みこみするときに使われる)が、誤動作していましたので、解決策とはいえないものでした。おきない問題な気がしていますので、同様のトラブルに見舞われた方は、32bit版を使うのを、おすすめします。トラブルにならない環境もあるようです。64bitを作成していました。問題なく動いていたコードだったのですが、移行のためにParallelsDesktopでインストールしたら、動かないという状態でした。以前の環境は数年使っていたので、各種Updateなどが正しく入っていたのかもしれません。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。公開5周年をお祝いしましょう!🌸コメントで回答する理由を教えてください関連する質問0ODBCでオラクルサーバーへ接続する際にエラーが出てしまいます。Mail送信が失敗する。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。