プロが教える店舗&オフィスのセキュリティ対策術

VBAで、コマンドプロンプトを実行する

objWSH.Run strShellCommand(i), vbNormalNoFocus, True

コマンドプロンプトを実行し、パラメータを取り出す


Set wExec = WSH.Exec("%ComSpec% /c " & """" & sCmd & """")
'Set wExec = WSH.Exec("%ComSpec% /c " & sCmd)
Do While wExec.Status = 0
DoEvents
Loop
Result = wExec.StdOut.ReadAll



という二つの方法がありますが、
実行後にコマンドプロンプトのウインドウを閉じないで待機するにはどうしたら良いですか?

sCmd = xxxxx & vbCr & " pause"

のように改行後にpauseが入るようにしてみたのですが
うまくいきませんでした。

どうすれば良いでしょうか?

A 回答 (1件)

Runメソッドであれば、


WSH.run "%ComSpec% /c " & sCmd & " & pause",,True

Execメソッドだと、pauseに対してキーインするのが出来ないので、
Set wExec = WSH.Exec("%ComSpec% /c " & sCmd & " & calc")
とでもして、電卓を閉じることで、コマンドプロンプトを閉じる。
ただ、Execの場合は、画面に何も出ませんけど。
出力は、wExec.StdOut に出るので。
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A