我从用户thommck的一篇非常有用的帖子中找到了以下代码 . 它将选定的项目作为附件在单独的电子邮件中转发给指定的收件人 .
当我使用代码时,转发符号不会出现在我刚转发的电子邮件的电子邮件图标上 . 如果我使用常规Outlook方法“转发为附件”,则该符号将添加到我的查看窗格中的信封图标中 .
有关如何在使用此代码时显示此前向符号的任何想法?
Sub ForwardSelectedItems()
On Error Resume Next
Dim objItem As Outlook.MailItem
If Application.ActiveExplorer.Selection.Count = 0 Then
MsgBox ("No item selected")
Exit Sub
End If
For Each objItem In Application.ActiveExplorer.Selection
Set objMsg = Application.CreateItem(olMailItem)
With objMsg
.Attachments.Add objItem, olEmbeddeditem
.Subject = "enter text"
.To = "example@example.com"
.Send
End With
Next
Set objItem = Nothing
Set objMsg = Nothing
End Sub
3 回答
在原始邮件上设置PR_ICON_INDEX属性 . 您还可以(可选)设置PR_LAST_VERB_EXECUTED和PR_LAST_VERB_EXECUTION_TIME属性 .
查看Outlook使用OutlookSpy转发的邮件(单击IMessage按钮):
您需要使用MailItem类的Forward方法,而不是在代码中创建新的邮件项:
应替换为:
请注意,如果您不想查看附加项目的内容,则需要清除邮件正文 .
您可能会发现Getting Started with VBA in Outlook 2010文章很有帮助 .
您可以使用ExecuteMso模拟按下按钮 .
https://msdn.microsoft.com/en-us/library/office/ff862419%28v=office.15%29.aspx
expression.ExecuteMso(idMso)
expression一个返回CommandBars对象的表达式 .
要查找idMso,请完成向快速访问工具栏或功能区添加按钮的过程 . 在列表中找到控件后,将鼠标悬停在其上,直到出现工具提示 . idMso是括号中的名称 .
在这种情况下,它是ForwardAsAttachment