Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Excel minimieren - Outlook - Excel maximieren


Betrifft: Excel minimieren - Outlook - Excel maximieren von: Jochen Schwab
Geschrieben am: 21.09.2017 10:24:32

Schönen guten Morgen allerseits,

bin gerade in den letzten Zügen zu einem umfangreichen Programm zur Lagerbestellung in Excel mittels VBA. Eine Kleinigkeit fehlt mir noch, sonst klappt alles:

Den folgenden Code habe ich gebastelt, um aus Excel heraus Outlook aufzurufen und gleichzeitig das Excel Blatt zu minimieren, so dass Outlook im Vordergrund steht.

Sub Mail()

Set objOutlook = CreateObject("Outlook.Application")

Set objMail = objOutlook.CreateItem(0)

Application.WindowState = xlMinimized

With objMail

    .To = asdf@test.com

    .Subject = "testweise"

    objMail.Display

End With

End Sub

Soweit klappt auch alles.

Nur wie bekomme ich das hin, wenn ich Outlook schließe, dass das Excel-Blatt dann wieder in seiner vorherigen Ansicht erscheint? Da versag ich momentan ein bisschen.

Die Zeile

Application.WindowState = xlMinimized

habe ich eingebaut, weil mein Excel-Fenster sonst nicht zu sehen ist und das Outlook-Fenster dabei in der Taskleiste blinkt, also nicht wirklich benutzerfreundlich.

Ich dachte, ich schreib nach "End With" einfach

Application.WindowState = xlMaximized

Gute Idee, dacht ich mir, und jetzt sieht mein Code so aus:

Sub Mail()

Set objOutlook = CreateObject("Outlook.Application")

Set objmail = objOutlook.CreateItem(0)

Application.WindowState = xlMinimized

With objmail

    .To = asdf@testweise.de

    .Subject = "Testdingens"

    objmail.Display

End With

Application.WindowState = xlMaximized

End Sub

Sieht auch recht gut aus dachte ich so bei mir, ABER: Jetzt wird das Excel-Blatt ausgeblendet, Outlook ganz kurz eingeblendet und dann das Excel-Blatt sofort wieder eingeblendet. Also eher wenig hilfreich bis unmöglich.

Deswegen meine Frage: Wie schaff ich es, dass das Excel-Blatt minimiert wird, Outlook eingeblendet wird (und zwar so lange bis Outlook wieder geschlossen wird, sei es durch Senden einer Nachricht oder durch Klick auf das rechte obere x) und danach das vorherige Excel-Blatt wieder maximiert wird.

Bin nicht soo fit in VBA und würde mich umso mehr um möglichst detaillierte und nachvollziehbar kommentierte Anregungen freuen!

Ich wünsch Euch einen schönen Tag!
Jochem

  

Betrifft: AW: Excel minimieren - Outlook - Excel maximieren von: mumpel
Geschrieben am: 22.09.2017 11:34:00

Hallo!

Normalerweise sollte die Email in den Vordergrund kommen. Man muss Excel also nicht minimieren.

So wie Du Dir das denkst geht es jedenfalls nicht. VBA ist ein Zeileninterpreter, daher verhält sich Dein Code absolut korrekt.

Man könnte noch eine Zeitschleife einbauen, welche in regelmäßigen Abständen prüft ob Outlook noch aktiv ist. Allerdings funktioniert auch das nur wenn Outlook komplett beendet wird.

Gruß, René


  

Betrifft: AW: Excel minimieren - Outlook - Excel maximieren von: Jochen Schwab
Geschrieben am: 22.09.2017 14:26:05

Hallo René,

in der Zwischenzeit hat sich mein Problem erledigt. Ich hatte schlicht und einfach vergessen, die Variablen objOutlook und objMail sauber zu deklarieren, beide As Object.

Nachdem ich das gemacht habe, kommt Outlook in den Vordergrund und verschwindet nach dessen Beenden.

Vielen Dank für Deine Hilfe!

Gruß
Jochem


Beiträge aus den Excel-Beispielen zum Thema "Excel minimieren - Outlook - Excel maximieren"