新手展望VBA。中级Excel VBA。 Windows 7专业版,Outlook 2010从转发的电子邮件中删除自动签名VBA宏
我有一个脚本从规则运行,自动转发所有传入的电子邮件。我需要它作为规则,否则它不会在Outlook加载时转发队列中的邮件。
我希望邮件转发时删除默认签名。由于答复是“空白”,因此不需要附加sig。我发现一些代码可以在MSDN站点的Outlook 2007中工作。它编译没有错误,不会执行错误。我在VBA中引用了MS Word。但转发的电子邮件都附有签名。
我不能只是删除签名,因为我需要它在回复中。签名开关用于回复和转发邮件。
下面是代码:
Option Explicit
Sub Incoming3(MyMail As MailItem)
Dim strID As String
Dim strSender As String
Dim StrSubject As String
Dim objItem As Outlook.MailItem
Dim myItem As Outlook.MailItem
strID = MyMail.entryID
Set objItem = Application.Session.GetItemFromID(strID)
strSender = objItem.SenderName
StrSubject = objItem.Subject
StrSubject = strSender + ": " + StrSubject
objItem.Subject = StrSubject
objItem.AutoForwarded = False
Set myItem = objItem.Forward
myItem.Recipients.Add "[email protected]"
myItem.DeleteAfterSubmit = True
Call DeleteSig(objItem)
myItem.Send
Set myItem = Nothing
Set objItem = Nothing
End Sub
Sub DeleteSig(msg As Outlook.MailItem)
Dim objDoc As Word.Document
Dim objBkm As Word.Bookmark
On Error Resume Next
Set objDoc = msg.GetInspector.WordEditor
Set objBkm = objDoc.Bookmarks("_MailAutoSig")
If Not objBkm Is Nothing Then
objBkm.Select
objDoc.Windows(1).Selection.Delete
End If
Set objDoc = Nothing
Set objBkm = Nothing
End Sub
与Outlook或VBA代码任何帮助将非常感激。
不,这没有什么区别。 Outlook仍附加签名。 – parodytx 2015-02-25 13:41:58
不管这是不是最终修复程序,您是在DeleteSig中处理原始“objItem”,而不是作为转发邮件的“myItem”。 – niton 2015-02-25 21:31:52
出于某种原因,您的推荐导致autoforward停止工作。当我恢复原状时,它会再次运作。我无法解释为什么发生这种情况。 – parodytx 2015-02-26 02:55:35