January 16, 2015

64bitのWindowsでScriptControl objectを作成できない(msscript.ocxが存在しない)

VBAやVBScriptの便利な機能に他の言語を呼び出す機能があります。ScriptControlオブジェクトを作成し、それを使って例えばJavaScriptを実行できます(ました)。ウェブ上にも様々なコードの例が上がっていたり、regsvr32を使ってdllを再登録しなさい、だとか書いてあるわけですが、64bitのWindowsで実行しようとしてハマりました。

調べた結果、今のところの結論は以下の通り。
  • 64bit版のWindowsにはmsscript.ocxは存在しない。
  • ホストアプリケーションが32bitであれば、OSが64 bit版であっても、msscript.ocxが使える。
したがって、開発環境やコードを書き換えずに実行したい場合は以下の対応になります。
  • 32 bitのホストアプリケーションを使う。(OSは32 bitでも64 bitでもよい。
したがって、どうしても同じ手順でスクリプトを使いたいならば、OSとソフトウエアを慎重に選択するあるいは仮想環境を用意するなどの対応が必要になります。

なお、64bit版のホストアプリケーションしかない場合にどうするのか、ということになるんですが、今のところ回避方法は見つからず。

No comments :

Post a Comment