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 iAnzeige 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.

Anzeigedauer für Messagebox festlegen

Drucken