Windows環境でJavaScriptファイルをコマンドラインから実行する場合、cscriptやwscriptを使用することができます。しかし、ブラウザ用のJavaScript関数であるalert()はWScriptでは利用できないため、エラーが発生します。本記事では、cscriptでのJavaScript実行方法と、Access VBAから呼び出す方法を解説します。
cscriptで実行可能なJavaScriptの書き方
cscriptはWindows Script Host(WSH)上でJavaScript(.js)を実行します。WScript環境では、alert()やdocumentなどのブラウザ専用オブジェクトは存在しません。
代わりに、WScript.Echo()を使ってコンソールに文字を表示します。例えば、WScript.Echo('ハロー');と書くことで、コマンドプロンプト上にメッセージを出力できます。
コマンドラインでの実行方法
作成したJavaScriptファイルを実行するには、コマンドプロンプトで以下のように入力します:cscript //nologo test.js
//nologoオプションを付けることで、実行時のヘッダー表示を抑制できます。WScript.Echoを使うことで、正しくメッセージが表示されることを確認できます。
Access VBAからJavaScriptを呼び出す方法
Access VBAからJavaScriptファイルを実行する場合、Shell関数を使用してcscriptを呼び出します。例。
Shell "cscript //nologo C:\path\to\test.js", vbNormalFocus
これにより、VBAからWSH上でJavaScriptを実行し、結果をコンソールで確認できます。
注意点と代替方法
ブラウザ用の関数はWSHでは利用できないため、必ずWScript対応の関数を使用する必要があります。また、複雑な処理やGUI操作が必要な場合は、PowerShellやNode.jsを利用する方法もあります。
Node.jsであれば、alertの代わりにconsole.logを使い、より多機能なJavaScript環境で実行可能です。
まとめ
cscriptでJavaScriptを実行する際は、ブラウザ専用の関数を避け、WScript.Echo()などWSH対応の関数を使用します。コマンドラインからはcscript //nologo ファイル名で実行できます。
Access VBAから呼び出す場合は、Shell関数でcscriptを実行する方法が簡単です。より高度なJavaScriptの実行環境が必要な場合は、Node.jsの活用も検討してください。


コメント