完全に個人的な備忘録

完全に個人的な備忘録。学習コストが高くなってきたので、メモしておかないと…片っ端から忘却の彼方なのです。

VBAの実行時 MSRDO20.dll が無いと言われる

VBAの実行時 MSRDO20.dll が無いと言われた時の備忘録。原因は、以下の通り。

Support Statement for Visual Basic 6.0 | Microsoft Docs

Windows 7から MSRDO20.dll がデフォルトではインストールされなくなったから。直接、Visual Basic 6.0を使用しているわけではないが、VBAからVBのDAOを実行していると発生してしまう。DAOを使用しないで、別の方法で実現すれば良いのだが、今、過去に作ったVBAのマクロを修正している暇はない。

って事で、MSRDO20.dll を何らかの方法で入手して、システムフォルダ(例えばC:¥Windows¥System32¥MSRDO20.dll)に複写し、regsrv32でレジストします。

>regsvr32.exe C:¥Windows¥System32¥MSRDO20.dll

f:id:tarancho:20140712075633p:plain

とりあえず、これで使えるようになります。

Windows10 64bitの場合の留意点

(2019-05-17追記)
Windows10 というか 64bit OSの場合は、dllファイルの置き場所は System32 ではなく、SysWOW64 ディレクトリになります。

f:id:tarancho:20190517083245p:plain
エラーコード 0x80004005

それと、これも Windows 10 に限った事ではないですが、regsvr32 コマンドを実行するコマンドプロンプトは管理者で機動しないと エラーコード 0x80004005 が発生します。