在Outlook中附加主题标题(VBA)

在Outlook中附加主题标题(VBA),vba,outlook,append,Vba,Outlook,Append,基本上,我们有一个规则设置,当在传入消息的正文中检测到一个码字时,可以运行脚本。脚本将在当前主题标题前面附加一个单词。例如,在“测试消息”之前,在“部门-测试消息”之后。有什么想法吗?未经测试: mailItem.Subject = "Dept - " & mailItem.Subject mailItem.Save 或者,如果需要完整的脚本: 执行以下操作:以MailItem作为参数运行脚本 Sub RewriteSubject(MyMail As MailItem) D

基本上,我们有一个规则设置,当在传入消息的正文中检测到一个码字时,可以运行脚本。脚本将在当前主题标题前面附加一个单词。例如,在“测试消息”之前,在“部门-测试消息”之后。有什么想法吗?

未经测试:

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

或者,如果需要完整的脚本:

执行以下操作:以MailItem作为参数运行脚本

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

我们遗漏了什么吗?编辑:Doh!你已经用完整的脚本回答了我们的问题。。。谢谢

为什么要为mailitem创建一个新变量并通过EntryID查找它?mailitem作为参数直接提供给过程。
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