Wie kann ich eine Msgbox über einer anderen Anwendung anzeigen lassen?

1

Ich habe ein Excel-Makro, das mit Tausenden von Zeilen in mehreren Tabellen umgeht und einige Operationen zum Kopieren / Einfügen / Analysieren / Kombinieren ausführt. Es dauert fast 10 Minuten, um es vollständig auszuführen.

Ich fügte hinzu, a MsgBox "Job Done" Am Ende erscheint das Popup nur, wenn Excel das aktive Fenster ist. Wenn ich mich zum Beispiel in Outlook befinde, wird das Popup nicht eingeblendet, was den Vorteil erheblich einschränkt.

Kann ich etwas so einstellen, dass es auftaucht?

Memes
quelle

Antworten:

0

Denke mal kreativ. Es gibt noch andere Möglichkeiten, um Ihre Aufmerksamkeit auf sich zu ziehen Msgbox

Popup ein Befehlszeilenfenster Welches ist oben

Sub Sample()
  RetVal = Shell("CMD /k echo Hello World", vbNormalFocus)
End Sub

Hinweis: Dadurch wird Ihr VBA-Makro nicht gestoppt. Es läuft als separater Prozess

Spielen Sie eine Signalton klingen

Sub Sample()
  Beep
End Sub

Hinweis: Standard-Piepton Damit dies funktioniert, muss ein Sound zugeordnet sein

Öffnen Sie den Notizblock, um Aufmerksamkeit zu erregen

Sub Sample()      
  Set WScript = CreateObject("WScript.Shell")
  WScript.Run "%windir%\notepad", 1
End Sub

Lesen Sie mehr über den großartigen Artikel Programmieren des Windows Script Host . Das Fokusverhalten kann mit geändert werden intWindowStyle

nixda
quelle
Ich mag die erste Lösung, insbesondere, dass das Makro nicht gestoppt wird. Sie kann auch verwendet werden, um einige Schritte zu markieren, während der Code während der Entwicklungsphase ausgeführt wird
Memes
@Memes Ich möchte nur erwähnen, dass die dritte Methode das Makro auch nicht anhält / stoppt
nixda
Ja, das habe ich verstanden, aber es ist weitaus weniger elegant: Ein "normaler" Benutzer könnte am Ende sagen: "Hey, was zum Teufel, ich habe den Notizblock nicht geöffnet !!!"
Memes
1

Wie wäre es mit

vbSystemModal   4096    System modal; all applications are suspended until the user responds to the message box.

Sehen MsgBox-Funktion

teylyn
quelle