【Windows】Windows7でComDlg32.ocxを動かす
Windows 7 環境下で、ExcelVBAにFileDialogオブジェクトを利用しようとするとエラーになってマクロが動かせなかった。
調べてみたら、64bit環境だとって言ってるけど、32bit環境(vmware player上)でもなるし、よくわからんが、解決方法を記そう!
- Microsoft Visual Basic 6.0 Service Pack 6 累積的な更新プログラムをダウンロードする。
- コマンドプロンプトで、以下のコマンドを実行し、msiの中身を展開する。
msiexec /a D:\VB60SP6-KB2708437-x86-JPN.msi targetdir="D:\msi_expand" /qn
- 展開した中に、『SYSTEM\ComDlg32.OCX』があるので、『C:\Windows\SysWOW64』へコピーする。(管理者権限が必要)
- 管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行。
regsvr32 C:\Windows\SysWOW64\ComDlg32.OCX
これで、VBA側のエラーはなくなるはず。
他にもエラーが発生するなら、参照できてないOCXを見つけ出して、同じことをすればいいと思う。
Windows 7 32bitだとSysWOW64ディレクトリは無いので、system32ディレクトリ下へファイルをコピーすればいいだろう。
ちなみに、不要になったりゴミだから消したいという場合は、以下の手順でファイルを削除する。