MessageBox nach bestimmter Zeit automatisch schließen

Eine MessageBox wird normalerweise so lange am Bildschirm angezeigt, bis diese über eine Schaltfläche wie Ja, Nein oder OK beendet wird.

Mit Hilfe des nachfolgenden Codes lässt sich eine MessageBox aber auch automatisch nach einer vorgegebenen Zeitdauer beenden. Dabei handelt es sich aber nicht um eine "Excel-MessageBox" sondern um die MessageBox die Windows bzw. der WSH (Windows Scripting Host) zur Verfügung stellt.

Sub MessageBox_zeitgesteuert()
'** Dimensionierung der Variablen
Dim intAnz As Integer
Dim objShell As Object
Dim lngDauer As Long

'** Objektverweis auf die WScript.Shell setzen
Set objShell = CreateObject("WScript.Shell")

'** Anzeigedauer festlegen
lngDauer = 3

'** Anzeige der MessageBox mit Anzeigetext und Titelleiste
iAnzeige = objShell.Popup("Die Anzeigedauer beträgt " & lngDauer & " Sekunde/n", _
  lngDauer, "Inhalt der Titelleiste", vbOKOnly)
        
End Sub

Über den Wert in Variable lngDauer wird die Anzeigedauer in Sekunden eingestellt. Der Wert 3 bedeutet also, dass die Messagebox 3 Sekunden angezeigt wird und anschließend automatisch ausgeblendet wird. Über einen Klick auf die Schaltfläche OK kann die MsgBox aber auch vorzeitig beendet werden.

Folgende Werte können für die Messagebox zur Anzeige von verschiedenen Schaltflächen verwendet werden.

Parameter

Wert

Beschreibung

OKOnly 0 Zeigt nur die Schaltfläche OK an.
OKCancel 1 Zeigt die Schaltflächen OK und Abbrechen an.
AbortRetryIgnore 2 Zeigt die Schaltflächen Abbrechen, Wiederholen und Ignorieren an.
YesNoCancel 3 Zeigt die Schaltflächen Ja, Nein und Abbrechen an.
YesNo 4 Zeigt die Schaltflächen Ja und Nein an.
RetryCancel 5 Zeigt die Schaltflächen Wiederholen und Abbrechen an.
Critical 16 Zeigt das Stop-Symbol im Meldungsfeld an.
Question 32 Zeigt das Fragezeichen-Symbol im Meldungsfeld an.
Exclamation 48 Zeigt das Symbol Warnung im Meldungsfeld an.
Information 64 Zeigt das Symbol Information an.
DefaultButton1 0 Erste Schaltfläche ist Standardschaltfläche.
DefaultButton2 256 Zweite Schaltfläche ist Standardschaltfläche.
DefaultButton3 512 Dritte Schaltfläche ist Standardschaltfläche.
ApplicationModal 0 Anwendung ist modal. Der Benutzer muss das Meldungsfeld bestätigen, bevor mit der Anwendung fortgefahren werden kann.
SystemModal 4096 System ist modal. Alle Anwendungen werden unterbrochen, bis der Benutzer auf das Meldungsfeld reagiert.
MsgBoxSetForeground 65536 Legt das Meldungsfeld als Vordergrundfenster fest.
MsgBoxRight 524288    Der Text ist rechtsbündig.
     

Die Beispieldatei kann über den folgenden Link heruntergeladen werden.