2008-09-18 18 views
5

Fondamentalement, nous avons une configuration de règle pour exécuter un script lorsqu'un mot de code est détecté dans le corps d'un message entrant. Le script ajoutera l'en-tête du sujet actuel avec un mot devant. Par exemple, Avant: "Message de test", Après: "Dept - Message de test". Des idées?Ajout d'un en-tête de sujet dans Outlook (VBA)

Répondre

0

Non testé:

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

Ou si vous avez besoin d'un script entier:

faire la course un script avec le MailItem comme paramètre.

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

Pourquoi créez-vous une nouvelle variable pour le mailitem et recherchez-la par EntryID? Le mailitem est disponible directement dans la procédure en tant que paramètre. – 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 

-nous quelque chose qui manque? EDIT: Doh! Vous avez déjà répondu à notre question avec un script complet ... Merci!

Questions connexes