Outlook 2016 中有一些烦人的热键。例如,ctrl-F 在大多数应用程序中表示“查找”,但在 Outlook 中它表示“转发邮件”。几个应用程序使用 Backspace 返回,但在 Outlook 中它表示“存档邮件”。
有没有办法重新分配一些热键或禁用 Outlook 2016 中的一些热键?
答案1
以下是两种停止 Outlook Backspace Archive 快捷键工作的方法:
- 没错,通过注册表
如果您愿意并且能够更新注册表,请在此页面上搜索 DisableOneClickArchive DWORD 并按照其中的说明进行编辑:https://office365itpros.com/2022/09/02/outlook-archive-folder/
- 或者通过我编写的 Visual Basic 代码来捕捉操作。这样做的唯一缺点是您必须为每个文件夹编写代码,并且它会阻止项目因任何原因进入存档文件夹。
此代码适用于收件箱和已发送默认文件夹。我还包含了非默认文件夹的代码,但显然我不知道您的文件夹名称,因此我用单引号和句点注释掉了该代码。要激活这些行,请删除所有 '. 并将 Other 重命名为您的文件夹名称。如果您的文件夹是嵌套的,则只需在其前面加上父文件夹名称,如下所示:
Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("TheParentOfOther").Folders("Other")
(或者如果它嵌套在收件箱下,则直接在后面进行编码,如下所示:
Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Other")
指示
通过功能区上的“开发人员”选项卡打开 Outlook Visual Basic(如果您没有看到它,请单击文件、选项、自定义功能区,然后勾选主页下的“开发人员”选项卡)。
在左侧项目资源管理器窗口中,展开项目和 Microsoft Outlook 对象,然后双击 ThisOutlookSession
在右侧窗口中粘贴以下代码。(如果您那里已经有代码,则需要合并私有定义部分、Application_Startup 行,并在所有行下方附加 subs。)
然后单击“保存”,并重新启动 Outlook。
' Prevent move to Archive folder from Inbox or Sent or other folders
' Define each folder's variable with event watching
Private WithEvents folderInbox As Outlook.Folder
Private WithEvents folderSent As Outlook.Folder
'.Private WithEvents folderOther As Outlook.Folder
' During startup, set the folder variables
Private Sub Application_Startup()
Set folderInbox = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set folderSent = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
'. Set folderOther = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("Other")
End Sub
' Before moving an item out of the Inbox folder,
Private Sub folderInbox_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
' if it's to the Archive folder, cancel the move
If MoveTo = "Archive" Then Cancel = True
End Sub
' Before moving an item out of the Sent folder,
Private Sub folderSent_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
' if it's to the Archive folder, cancel the move
If MoveTo = "Archive" Then Cancel = True
End Sub
'.' Before moving an item out of the Other folder,
'.Private Sub folderOther_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
'. ' if it's to the Archive folder, cancel the move
'. If MoveTo = "Archive" Then Cancel = True
'.End Sub