AW: Bildschirmausgaben
28.08.2004 23:01:02
Philipp von Wartburg
Hallo Olaf
Dieses Beispiel blendet eine Message Box immer im Vordergrund ein (systemmodal), unabhängig davon, welches Anwendungsfenster gerade aktiv bzw. zuvorderst ist. Wenn man ein anderes Anwendungsfenster aktiviert (muss nicht Excel sein), bleibt die Meldung im Vordergrund stehen. Die Meldungsbox schliesst automatisch nach 30 Sekunden - definiert durch die Zahl 30 bei "objWSHShell.Popup". Diese Zahl kann man beliebig wählen zwischen 1 und n. Wenn man die Zahl 0 angibt, erscheint die Meldung zwar immer noch im Vordergrund, bleibt aber beim Aktivieren eines anderen Fensters nicht zuvorderst stehen.
Die restlichen Argumente von Popup funktionieren gleich wie bei MsgBox. Man kann also auch Symbole anzeigen, Schaltflächen wie Abbrechen, Ja, Nein etc. anzeigen und auswerten, welche Schaltfläche geklickt wurde.
Sub ShowMessageSystemModal()
Application.Wait Now + TimeValue("0:00:05")
Dim objWSHShell As Object
Set objWSHShell = CreateObject("WScript.Shell")
objWSHShell.Popup "Systemmodale Message Box.", 30, "Meldung", vbSystemModal
Set objWSHShell = Nothing
End Sub
Hier noch die abgekürzte Fassung und mit Ausrufezeichen-Symbol:
Sub ShowMessageSystemModalShort()
CreateObject("WScript.Shell").Popup "Systemmodale Message Box.", 30, "Meldung", vbSystemModal + vbExclamation
End Sub
Weitere Infos gibts hier:
http://195.186.84.74/soscq/vbacode.htm
(siehe Codebeispiel "Meldungsdialog nach x Sekunden automatisch schliessen" in der Kategorie "Anderes")
Gruss
Philipp
¦¦¦ xlam - Excel and more!
¦¦¦ http://195.186.84.74/index.htm