| 
    
     |  | 多分API使わないと無理ではないかと・・・ 
 下のコードは、Shell関数の終了するまで待機させるものです。
 
 GetExitCodeProcessでそのアプリケーションが終了しているか確認し、
 終了していない場合、DoEvents関数でそのアプリケーションへ
 CPU処理を戻してやっているものです。
 
 強制終了もAPI使えば出来ますので、検索してみてください。
 
 参考になるかと・・・
 
 'API定義
 Declare Function OpenProcess Lib "kernel32" _
 (ByVal dwDesiredAccess As Long, _
 ByVal bInheritHandle As Long, _
 ByVal dwProcessId As Long) As Long
 
 Public Const PROCESS_QUERY_INFORMATION = &H400&
 
 Declare Function GetExitCodeProcess Lib "kernel32" _
 (ByVal hProcess As Long, _
 lpExitCode As Long) As Long
 
 Public Const STATUS_PENDING = &H103&
 Public Const STILL_ACTIVE = STATUS_PENDING
 
 Declare Function CloseHandle Lib "kernel32" _
 (ByVal hObject As Long) As Long
 
 '-------------------------------------------------------------------------
 '[Shell関数が終了するまで待機]
 '
 'プロシジャー名   S_WaitProcess
 '引数        lngProcessID  Shell関数の戻り値(プロセスID)
 '-------------------------------------------------------------------------
 Sub S_WaitProcess(lngProcessID As Long)
 
 Dim lngProcess As Long
 Dim lngExitCode As Long
 Dim rc As Long
 
 'プロセスIDからハンドルを取得
 lngProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, lngProcessID)
 Do
 '終了しているか確認
 rc = GetExitCodeProcess(lngProcess, lngExitCode)
 DoEvents   '処理を戻す
 Loop While lngExitCode = STILL_ACTIVE '終了するまでループ
 rc = CloseHandle(lngProcess) '後始末
 End Sub
 
 
 |  |