4

マルチスレッドを実現するために、VBA を使用して VBScript コード ( VBStr) を作成し、これらのヘルパー スクリプトを非同期で起動する前に、オンザフライでファイルに書き込みます。

Dim VBFile As Object
Dim VBPath As String
VBPath = CurrentProject.Path & "\" & GUID() & ".vbs"
Set VBFile = CreateObject("Scripting.FileSystemObject").CreateTextFile(VBPath)
VBFile.WriteLine VBStr
VBFile.Close

Dim Shell As Object
Set Shell = CreateObject("Wscript.Shell")

Shell.Run """" & VBPath & """"

ただし、これらのスクリプトを VBA で制御するにはどうすればよいでしょうか。それらへのハンドルまたは参照を取得できないようです。ハング/ストールしたスクリプトを 60 秒後に終了したいとします。これを行うにはどうすればよいですか?

4

1 に答える 1

5

.Run の代わりに .Exec を使用します。返されたWshScriptExec オブジェクトには、ステータスを監視してプロセスを終了するためのメソッド/プロパティがあります。

于 2013-07-02T07:45:25.897 に答える