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

前回の質問に続く内容なのですが、Excelの起動は
おかげ様でうまくいきました。
が、直後のコーディングが???
Excelを起動後にモーダルで終了を待ちたいのですが
どうすればよいのか分かりません、HELPをめくっている際にちらっと見た覚えはあるのですが、それがどこにあったのか探せなくなりました。
助けてください!

A 回答 (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が終わったよ"
みたいな感じで、アプリの起動を監視できます


返事は一回!
    • good
    • 1
この回答へのお礼

まっことおおきに!(土佐弁どえす)
うまくいきました。
非常に助かりました。
ARCさん、師匠と呼ばせてください(笑)

お礼日時:2000/12/19 09:49

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

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