燈明ブログ

現状は小池啓仁の応援ブログ

VBからDOSコマンドを順番に処理するには

VBAまたはVBSからWSH複数DOSコマンドを起動する時に、コマンドが順番に実行しないでバラバラに処理される場合があります(デフォルト)。すると、意図しない結果に終わって残念な思いをします。

このような場合は、Runメソッドの第3引数をTrueにすると順番に処理されます。

[例]
Dim WshShell As Object
Dim strWkcmd As String
Set WshShell = CreateObject("Wscript.Shell")
strWkcmd = Environ("ComSpec") & " /c ""schtasks /create /TN (以下略)
WshShell.Run strWkcmd, 0, True
strWkcmd = Environ("ComSpec") & " /k ""schtasks """
WshShell.Run strWkcmd, 0, True