【发布时间】:2010-09-12 10:00:39
【问题描述】:
当您使用 VBA 右键单击电子邮件时,有什么方法可以从上下文菜单中删除“打印”项?
我一直在右键单击回复电子邮件,只是不小心单击了Print,然后 Outlook 将其直接发送到打印机,速度比我阻止它的速度快。
注意:我使用的是 Outlook 2007。
【问题讨论】:
标签: vba outlook outlook-2007
当您使用 VBA 右键单击电子邮件时,有什么方法可以从上下文菜单中删除“打印”项?
我一直在右键单击回复电子邮件,只是不小心单击了Print,然后 Outlook 将其直接发送到打印机,速度比我阻止它的速度快。
注意:我使用的是 Outlook 2007。
【问题讨论】:
标签: vba outlook outlook-2007
根据 TcK 提供的链接,这非常简单。 在下面的示例中,我检查了项目的类型,以便它只影响电子邮件而不影响日历项目。 要在 Outlook 中输入代码,请键入 Alt + F11,然后在“项目”窗格中展开 Microsoft Office Outlook 对象。然后双击 ThisOutlookSession。然后将此代码粘贴到代码窗口中。我不喜欢检查这样的字幕,因为您可能会遇到国际化问题。但我没有在命令上看到 ActionID 或任何内容。有一个 FaceID,但这只是打印机图标的 ID。
Private Sub Application_ItemContextMenuDisplay(ByVal CommandBar As Office.CommandBar, ByVal Selection As Selection)
Dim cmdTemp As Office.CommandBarControl
If Selection.Count > 0 Then
Select Case TypeName(Selection.Item(1))
Case "MailItem"
For Each cmdTemp In CommandBar.Controls
If cmdTemp.Caption = "&Print" Then
cmdTemp.Delete
Exit For
End If
Next cmdTemp
Case Else
'Debug.Print TypeName(Selection.Item(1))
End Select
End If
End Sub
【讨论】:
&Print 替换为 &Quick Print(这是 Outlook 2013 中上下文菜单条目的名称)。
&Quick Print之后就可以用了吗?如果没有,您是否找到了适用于 Outlook 2013 的解决方案?谢谢!
&Quick Print。不,我没有找到解决方案。 (现在使用 Outlook 2016)
Thera 是如何以编程方式使用 Outlook 的示例: How to: Customize an Item Context Menu
【讨论】: