2017-04-24 5 views
1

Ich habe ein Outlook 2007 Makro, das eine E-Mail mit Flag für den Empfänger sendet, aber es funktioniert nicht mehr.Senden von E-Mail mit Flag funktioniert nicht

Ich habe den Code versehentlich geändert und jetzt funktioniert es nicht mehr.

Der Empfänger sieht die E-Mail nicht in TO DO und es wird nicht rot in der E-Mail-Liste angezeigt.

Sub fff() 
    Dim outApp As Object 
    Dim OutMail As Object 

    Dim datDue As Date 
    datDue = DateAdd("d", 7, Date) 


    Set OutMail = outApp.CreateItem(0) 

    With OutMail 
     .To = "[email protected]" 
     .Subject = "test" 
     .HtmlBody = "msg" 

     .Importance = olImportanceHigh 
     .FlagStatus = olFlagMarked 
     .FlagRequest = "Follow up" 
     .ReminderTime = datDue & " 17:00 PM" 
     .ReminderOverrideDefault = True 
     .ReminderSet = True 
     .TaskStartDate = Date 
     .TaskDueDate = datDue 
     .Save 
     .Send 

    End With 

End Sub 
+0

Wohin führen Sie den Code aus? Excel? – 0m3r

+0

Sie sollten die aktuellen [Regeln] (https://support.office.com/en-gb/article/Manage-messages-by-using-rules-80cc1f28-533d-4879-a8cc-ef83e9af0495) im empfangenden Posteingang überprüfen . Es gibt eine Standardregel, die Kategorien von eingehenden E-Mails streicht (die Annahme ist, dass die Regel etwas für den Absender, aber nicht für den Empfänger bedeutet). –

+0

Hallo, die Umgebung ist die selbe wie letzte Woche - der Code macht die Hervorhebung nicht in roter, markierter und Erinnerungsauslösung für den Empfänger. – wittman

Antwort

2

Ihre variable OutApp nicht sinnvoll und sollte Application sein, wie Sie diese direkt in Outlook verwenden.

Ich teste gerade diesen Code und es funktioniert gut für mich (Outlook 2013):

Sub wittman() 
    Dim OutMail As MailItem 
    Dim datDue As Date 

    datDue = DateAdd("d", 7, Date) 
    Set OutMail = Application.CreateItem(0) 

    With OutMail 
     .To = "[email protected]" 
     .Subject = "test" 
     .HTMLBody = "msg" 

     .Importance = olImportanceHigh 
     .FlagStatus = olFlagMarked 
     .FlagRequest = "Follow up" 
     .ReminderTime = datDue & " 17:00 PM" 
     .ReminderOverrideDefault = True 
     .ReminderSet = True 
     .TaskStartDate = Date 
     .TaskDueDate = datDue 
     .Save 
     .Send 
    End With 'OutMail 
End Sub 
+0

Hallo, auf meinem Outlook (2007) funktioniert es nicht. – wittman

+1

* Es funktioniert nicht * hilft nicht @ R3uK hilft Ihnen. Können Sie beschreiben, wie es nicht funktioniert (Ich sehe eine Fehlermeldung, die E-Mail erschien, aber nicht gesendet, etc, etc)? –

+1

Getestet Outlook 2010. Works. Ich kann nichts Offensichtliches sehen, das 2007 nicht unterstützt hat. –

1

Sie eine Aufgabe an einen Delegierten schicken:

Sub AssignTask() 
Dim myItem As Outlook.TaskItem 
Dim myDelegate As Outlook.Recipient 
Set MyItem = Application.CreateItem(olTaskItem) 
MyItem.Assign 
Set myDelegate = MyItem.Recipients.Add("Eugene Astafiev") 
myDelegate.Resolve 
If myDelegate.Resolved Then 
    myItem.Subject = "Prepare Agenda for Meeting" 
    myItem.DueDate = Now + 30 
    myItem.Display 
    myItem.Send 
End If 
End Sub 

Nicht vergessen "zu ersetzen Eugene Astafiev 'mit einem gültigen Empfängernamen vor dem Ausführen dieses Beispiels.

Sie können auch die MarkAsTask-Methode der MailItem-Klasse verwenden, um ein MailItem-Objekt als eine Aufgabe zu markieren und ein Aufgabenintervall für das Objekt zuzuweisen. Durch den Aufruf dieser Methode wird der Wert mehrerer anderer Eigenschaften abhängig vom Wert in MarkInterval festgelegt. Weitere Informationen zu den durch Festlegen von MarkInterval festgelegten Eigenschaften finden Sie unter OlMarkInterval Enumeration.

Sie können den How to set a flag to follow up using VBA Artikel hilfreich finden.

+0

Hallo, MarkAsTask ist für gesendet oder empfangen - ich möchte als Aufgabe für den Empfänger markieren - auf ihrer Mailbox nicht auf meiner. – wittman

+0

Versuchen Sie dann, Aufgabenelemente zu verwenden. Überprüfen Sie die aktualisierte Antwort. –

+0

Hallo, das Problem mit der Aufgabe ist, dass sie die Aufgabe annehmen müssen. Was ich versuche zu tun, ist eine Erinnerung für sie - auf diese Weise werden sie sich nicht beschweren über die zusätzliche Sache, die sie tun müssen. – wittman

Verwandte Themen