私は時々実行しているvbs/vbaスクリプトをいくつか持っています。しかし、次のvbscriptが進行中で、別のvbaまたはvbscriptが実行されているのは望ましくありません。Windowsでvbaスクリプトをチェックする方法は実行中ですか?
Set objSWbemServices = GetObject ("WinMgmts:Root\Cimv2")
Set colProcess = objSWbemServices.ExecQuery _
("Select * From Win32_Process where name = 'wscript.exe'")
Do While colProcess.Count > 1
WScript.Sleep 10000
Set colProcess = objSWbemServices.ExecQuery _
("Select * From Win32_Process where name = 'wscript.exe'")
Loop
しかし、私はExcelで実行されているVBAスクリプトの特定のプロセスを見つけることができません。そこに別のVBScriptが実行されているかどうかを決定し、現在のVBScriptの実行を遅延しても問題はありません。 vbaスクリプトが実行されている場合、どのようにvbscriptをチェックインできますか?
おそらく、Excelが重要なCPUを消費していて、それが起きているときにVBScriptを実行していないかどうかを確認できます。それは簡単ではないようですが、Task Managerで取得したCPU使用率のVBScriptをGoogleで検索できます。これは、VBAスクリプトが実行されているときにExcel用に起動します。 –
ありがとうございます、それは価値のあるアイデアです。ただし、vbaでWait関数を使用すると問題が発生する可能性があります。 –
それは確かにハックのあるアイデアですが、測定可能なものをテストすることは、そうでないものに対処する唯一の方法です。 VBScriptマクロとVBAマクロの両方の作者であれば、VBAマクロは、開始時と終了時にフラグを(ログファイルまたはレジストリ内で)発生させることができます。スクリプトはフラグをチェックするだけです。 –