[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『BATファイル起動、処理待ち』(カクタス)
こんにちは。よろしくお願いいたします。 ↓のコードでBATファイルを実行しています。
Dim bat As String
bat = "D:\test\hoge.bat"
CreateObject("Shell.Application").ShellExecute bat
MsgBox "完了"
BATファイルは、起動後、キーボードで"Y"か"N"を押したら 処理をするようになっています。
ただ、↑のコードだと、キーボードで"Y"か"N"を押す前に 次の >MsgBox "完了" へ行ってしまします。 BATファイルの終了を待って次の作業へいくにはどのように 記述すればいいでしょうか? ご指導お願いいたします。
Dim objShell, objExec
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("c:\ping.bat")
Do Until objExec.Status: DoEvents: Loop
MsgBox "終わり"
ご回答ありがとうございます。
実行しましたら、
>Set objExec = objShell.Exec("D:\test\hoge.bat")
のところで
実行時エラー '-2147024703 (800700c1)' D:\test\hoge.bat は有効な Win32 アプリケーションではありません。
というエラーになってしまいます。 コードは↓で試しました。
Dim objShell, objExec
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("D:\test\hoge.bat")
Do Until objExec.Status: DoEvents: Loop
MsgBox "終わり"
お手数ですが、再度のご指導お願いいたします。 (カクタス)
参考 Shellの処理待ち http://hp.vector.co.jp/authors/VA033788/kowaza.html#0072
再度のご指導ありがとうございます。 ↓でいけました。ありがとうございました。
Dim bat As String
bat = "D:\test\hoge.bat"
CreateObject("WScript.Shell").Run """" & bat & """", , True
(カクタス)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.