【发布时间】:2020-06-26 15:13:26
【问题描述】:
新手 Outlook VBA。中级 Excel VBA。 Windows 7 专业版、Outlook 2010
我有一个根据自动转发所有传入电子邮件的规则运行的脚本。我通常需要它,否则它不会在 Outlook 加载时转发队列中的邮件。
我希望在转发邮件时删除默认签名。由于回复是“空白”,因此没有必要附加签名。我从 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 "bcc.hwb@gmail.com"
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 代码的帮助将不胜感激。
【问题讨论】:
标签: vba outlook outlook-2010