2008-09-18 11 views
5

Grundsätzlich haben wir eine Regeleinstellung, um ein Skript auszuführen, wenn ein Codewort im Körper einer eingehenden Nachricht erkannt wird. Das Skript fügt den aktuellen Betreffkopf mit einem Wort voran an. Zum Beispiel Vorher: "Test Message", nach: "Dept - Test Message". Irgendwelche Ideen?Betreffzeile in Outlook (VBA) anhängen

Antwort

0

Nicht getestet:

mailItem.Subject = "Dept - " & mailItem.Subject 
mailItem.Save 
4

Oder wenn Sie ein ganzes Skript benötigen:

Sie das Ausführen eines Skripts mit dem MailItem als Parameter.

Sub RewriteSubject(MyMail As MailItem) 

    Dim mailId As String 
    Dim outlookNS As Outlook.NameSpace 
    Dim myMailItem As Outlook.MailItem 

    mailId = MyMail.EntryID 
    Set outlookNS = Application.GetNamespace("MAPI") 
    Set myMailItem = outlookNS.GetItemFromID(mailId) 

    ' Do any detection here 

    With myMailItem 
     .Subject = "Dept - " & mailItem.Subject 
     .Save 
    End With 

    Set myMailItem = Nothing 
    Set outlookNS = Nothing 

End Sub 
+1

Warum erstellen Sie eine neue Variable für das Mailitem und suchen es nach EntryID? Das Mailelement steht der Prozedur als Parameter direkt zur Verfügung. – JimmyPena

0
Sub AppendSubject(MyMail As MailItem) 
    Dim strID As String 
    Dim mailNS As Outlook.NameSpace 
    Dim mailItem As Outlook.MailItem 

    strID = MyMail.EntryID 
    Set mailNS = Application.GetNamespace("MAPI") 
    Set mailItem = mailNS.GetItemFromID(strID) 
    mailItem.Subject = "Dept - " & mailItem.Subject 
    mailItem.Save 

    Set mailItem = Nothing 
    Set mailNS = Nothing 
End Sub 

Fehlt etwas? EDIT: Doh! Sie haben unsere Frage bereits mit einem vollständigen Skript beantwortet ... Danke!