ここでは、時間制限付きのメッセージダイアログ ( WshShell.Popup ) を使用して、自動的に閉じるダイアログのサンプルスクリプトを掲載しています。
スポンサーリンク
タイムアウトして自動で閉じる確認ダイアログ
以下、OK とキャンセルボタンを出力するダイアログですが、一定時間経過するとダイアログが自動で閉じられるサンプルスクリプトです。「 操作しなければ OK と見なして、自動的に Windows10 にアップデートしますよ 」 的なヤツです。
なお、詳細なインターフェースは 「 Popup メソッド 」 を参照ください。
Dim wsh As New WshShell Dim ret As Variant ret = wsh.Popup("10秒だけ待ってやろう", _ 10, _ "爆発するぞ", _ vbOKCancel + vbQuestion) '10秒以内にキャンセルボタンがクリックされなければ '爆発処理が実行される If (ret = vbOK) Then 'OKボタンクリック MsgBox "自ら爆発しました" ElseIf (ret = vbCancel) Then 'キャンセルボタンクリック MsgBox "爆発は免れました" ElseIf (ret = -1) Then 'タイムアウト時は-1がリターンされる MsgBox "時間オーバーにより爆発しました" End If
参照設定
WshShell を使用するには、以下のように Windows Script Host Object Model への参照設定が必要です。
出力結果
OK キャンセルボタンの操作を行わないとタイムアウトして、自動的にダイアログは閉じられます。
なんだか WshShell.Popup は動作が不安定(自動で閉じない時がある)であるような気がします。どのような時に閉じないかなどの条件や原因は不明です。