全体的な目標は、JavaScriptファイルでNode.jsを実行し、MS Access VBAを使用して出力をスクラップすることです。ここで私がテストに使用しているJavaScriptファイルがあります:次のように私は、コマンドプロンプトからこれを実行するとVBAを使用してNode.jsを実行する
// C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js
var fs = require("fs");
var outputFile = "testLog.txt";
fs.writeFile(outputFile, new Date());
、それは面接準備フォルダ内のタイムスタンプを持つtestLog.txtファイルを生成します。
C:\Users\micha\OneDrive\AppAcademy\Interview Prep>node tst.js
私は、Accessアプリケーション内からVBAを使用して同じことをトリガーしたいと思います。私はそれを2つの方法で試しました。最初のものはすばやく汚れていますが、私が理解することは、StdOutで掻き分けビットを肉付けすることです。私はそれを実行すると、
Private Sub runShellTest_Click()
Dim objShell As Object, objExec As Object
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("C:\Program Files\nodejs\node.exe C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js")
End Sub
画面上にコマンドプロンプト簡単に点滅しますが、私は新しいtestLog.txtを得ることはありません:それはWScript.Shellを使用しています。
Private Sub runShellTest_Click()
MsgBox (Shell("C:\Program Files\nodejs\node.exe C:\Users\micha\OneDrive\AppAcademy\Interview Prep\tst.js", vbNormalFocus))
End Sub
ここでも、コマンドプロンプトが点滅アップ簡単に、そして全く新しいtestLog.txtありません:
私が試した他の方法でも迅速かつ汚れがあります。しかし、メッセージボックスにはタスクIDが期待通りに表示されるので、何か起こったと思いますか?
ご協力いただきましてありがとうございます。
ファイルに書き込む理由はなく、標準出力に書き込んでvbaからキャプチャするだけです。 – DusteD
私は明確にすべきです:JavaScriptを使ってファイルを書くことは、JavaScriptが実行されていることを確認する方法でした。私が実際にやろうとしているのは、指定されたJavaScriptファイルからconsole.logの出力をすべて取り除くことです。まず、objExec.StdOutをキャプチャしました。それがうまくいかないときは、問題がJavaScriptが実行されていないか、console.logがキャプチャされていないかどうかを確認したいと思っていました。これまでのところ、それは前者のように見えます。 – ProdigalBulldog