- ベストアンサー
VBからExcelを起動しExcel終了を判定したい
前回の質問に続く内容なのですが、Excelの起動は おかげ様でうまくいきました。 が、直後のコーディングが??? Excelを起動後にモーダルで終了を待ちたいのですが どうすればよいのか分かりません、HELPをめくっている際にちらっと見た覚えはあるのですが、それがどこにあったのか探せなくなりました。 助けてください!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
はいはい(笑) #19166の続きってことですので、Excelを使うのに New Excel.Application で、Excelのインスタンスを作成しているわけですよね。 それでしたら、ExcelApp変数の Visibleプロパティを見れば動いてるかどうか分かるみたいです。 以下、プログラム例です。 '*-*-*-この部分はモジュールの先頭部分に記述*-*-*- '寝る為のAPI Call SLEEP(寝るミリ秒数) Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '*-*-*-ここまで*-*-*- Private Sub Command2_Click() Dim ExcelApp As Excel.Application 'Excelのインスタンスを作成して表示 Set ExcelApp = New Excel.Application ExcelApp.Visible = True 'Excelが終了されるとVisibleがFalseになる 'ので、それまで待機 Do Call Sleep(250) 'しばらく寝る DoEvents Loop While ExcelApp.Visible = True 'Excel終了時の処理 MsgBox "Excelが終わったよん" 'インスタンスの開放 Set ExcelApp = Nothing End Sub ***************************************** 尚、Shellコマンドを使って起動した場合には、 Dim TaskID as long TaskID=Shell("Excel.EXE …") on error resume next do Err.Clear AppActivate TaskID Loop Until Err<>0 Msgbox "Excelが終わったよ" みたいな感じで、アプリの起動を監視できます 返事は一回!
お礼
まっことおおきに!(土佐弁どえす) うまくいきました。 非常に助かりました。 ARCさん、師匠と呼ばせてください(笑)