24.09.2017, 12:00
Schönen Sonntag Euch allen.
Ich komm nicht weiter.
Ich hab nen Command-Butten erstellt; wenn man drauf klickt, soll das Makro Mail abgearbeitet werden. Hierbei soll zuerst das Excel-Fenster minimiert und dann das Outlook Mail-Fenster maximiert werden . Wenn in Outlook auf "Senden" oder auf "Beenden" (x oben rechts) geklickt wird, soll Outlook zugehen.
Bis hierhin alles gut.
Dann soll aber das Excel-Fenster wieder maximiert werden.
Habe den folgenden Code ausprobiert und ihn in ein Modul gepackt:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub Mail()
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
Application.WindowState = xlMinimized
With objMail
.To = "test@asdf.com"
.Subject = "Testweise"
objMail.Display
Do
Sleep 1000
Loop Until objMail.Busy = False
.Quit
End With
Set objOutlook = Nothing
Set objMail = Nothing
Application.WindowState = xlMaximized
End Sub
Wie gesagt: Bis Outlook beenden klappt alles, dann aber blinkt das Excel-Fenster in der Taskleiste schon und die Fehlermeldung:
"Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht".
Beim Debuggen wird in der Office-Version (2016), die ich hier laufen hab, keine Zeile des Codes markiert. In der Office 2013 Version wird die Zeile "Loop Until objmail.Busy = False" gelb gemarkert.
Ich komm nicht weiter, bin aber auch nicht dieee riesige Leuchte, was VBA angeht. Bin da eher bescheiden und sag: Blicke da meist nicht durch. :17:
Aber ich hab rausgefunden, dass das Sleep korrekt ist, was ich erst nicht glauben wollte. Aber es schaut immer nach, ob Outlook noch läuft.
Für entsprechende Hilfe wäre ich äußerst dankbar!
Liebe Grüße
Jochen
Ich komm nicht weiter.
Ich hab nen Command-Butten erstellt; wenn man drauf klickt, soll das Makro Mail abgearbeitet werden. Hierbei soll zuerst das Excel-Fenster minimiert und dann das Outlook Mail-Fenster maximiert werden . Wenn in Outlook auf "Senden" oder auf "Beenden" (x oben rechts) geklickt wird, soll Outlook zugehen.
Bis hierhin alles gut.
Dann soll aber das Excel-Fenster wieder maximiert werden.
Habe den folgenden Code ausprobiert und ihn in ein Modul gepackt:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub Mail()
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
Application.WindowState = xlMinimized
With objMail
.To = "test@asdf.com"
.Subject = "Testweise"
objMail.Display
Do
Sleep 1000
Loop Until objMail.Busy = False
.Quit
End With
Set objOutlook = Nothing
Set objMail = Nothing
Application.WindowState = xlMaximized
End Sub
Wie gesagt: Bis Outlook beenden klappt alles, dann aber blinkt das Excel-Fenster in der Taskleiste schon und die Fehlermeldung:
"Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht".
Beim Debuggen wird in der Office-Version (2016), die ich hier laufen hab, keine Zeile des Codes markiert. In der Office 2013 Version wird die Zeile "Loop Until objmail.Busy = False" gelb gemarkert.
Ich komm nicht weiter, bin aber auch nicht dieee riesige Leuchte, was VBA angeht. Bin da eher bescheiden und sag: Blicke da meist nicht durch. :17:
Aber ich hab rausgefunden, dass das Sleep korrekt ist, was ich erst nicht glauben wollte. Aber es schaut immer nach, ob Outlook noch läuft.
Für entsprechende Hilfe wäre ich äußerst dankbar!
Liebe Grüße
Jochen