アプリケーションを起動し終了するまで待つ : Excel(エクセル)

Excel Tipsメニューに戻る

スポンサーリンク





Excel VBAで外部アプリケーションの起動を掲載しましたが、ここでは起動したアプリケーションが終了するまで待機させます。

Excelシート画面

「電卓を起動」ボタンがクリックされると下記の流れで実行されます。

1) Shellで電卓を起動します。
2) OpenProcessで起動した電卓のプロセスハンドルを取得します。
3) WaitForSingleObjectで待機します。
4) CloseHandleで終了処理を行います。

外部ソフトの起動

スポンサーリンク





Excel VBA実行コード

Option Explicit

Private Declare Function OpenProcess Lib "kernel32" _
    (ByVal dwDesiredAccess As Long, _
     ByVal bInheritHandle As Long, _
     ByVal dwProcessId As Long) As Long

Private Declare Function WaitForSingleObject Lib "kernel32" _
    (ByVal hHandle As Long, _
     ByVal dwMilliseconds As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" _
    (ByVal hObject As Long) As Long

Private Const SYNCRONIZE As Long = &H100000
Private Const INFINITE As Long = &HFFFF

Private Sub CommandButton1_Click()
    Dim IdProc As Long
    Dim hProc  As Long
    Dim lret As Long
    
    Cells(2, 4) = "開始"

    '電卓の起動
    IdProc = Shell("C:\WINDOWS\SYSTEM32\CALC.EXE", vbNormalFocus)
    Cells(3, 4) = "起動"

    hProc = OpenProcess(SYNCRONIZE, 1, IdProc)
    lret = WaitForSingleObject(hProc, INFINITE)
    lret = CloseHandle(hProc)
    Cells(4, 4) = "終了"
End Sub

Excel Tipsメニューに戻る

スポンサーリンク






■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved