ここでは、時間制限付きのメッセージダイアログ ( 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 への参照設定が必要です。

Windows Script Host Object Model 参照設定
出力結果
OK キャンセルボタンの操作を行わないとタイムアウトして、自動的にダイアログは閉じられます。

タイムアウトするダイアログ
なんだか WshShell.Popup は動作が不安定(自動で閉じない時がある)であるような気がします。どのような時に閉じないかなどの条件や原因は不明です。