当您右键单击带有VBA的电子邮件时,是否有任何方法可以从上下文菜单中删除"打印"项?
我永远都是右键单击以回复电子邮件,只是意外点击Print
并让Outlook将其直接发送到打印机的速度比我可以停止的速度快.
注意:我使用的是Outlook 2007.
基于TcKs提供的链接,这非常简单.在下面的示例中,我检查项目的类型,以便它只影响电子邮件而不影响日历项目.若要在Outlook中输入代码,请键入Alt + F11,然后在"项目"窗格中展开"Microsoft Office Outlook对象".然后双击ThisOutlookSession.然后将此代码粘贴到代码窗口中.我不喜欢检查这样的标题,因为你可能会遇到国际化的问题.但我没有在Command上看到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
Thera是如何以编程方式使用Outlook的示例: 如何:自定义项上下文菜单