Here are two ways to stop Outlook Backspace Archive shortcut key from working:
- Exactly, via the Registry
If you're willing and able to update the Registry, search for DisableOneClickArchive DWORD on this page and make the edit as described there: https://office365itpros.com/2022/09/02/outlook-archive-folder/
- Or catch the action via Visual Basic code I wrote. The only downside to this is you have to code it for each folder, and it prevents an item from going to the Archive folder for any reason.
This code is for the Inbox and Sent default folders. I have also included code for a non-default folder but obviously I don't know your folder name so I have commented that code out with a single quote followed by a period. To activate those lines remove all the '. and rename Other to your folder name. If your folder is nested then just prefix it with the parent folder name(s) like this:
Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("TheParentOfOther").Folders("Other")
(or it it's nested under Inbox then just code it directly after, like this:
Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Other")
Instructions
Open your Outlook Visual Basic via the Developer Tab on the ribbon (if you don't see it, click File, Options, Customize Ribbon, then tick Developer tab under Main).
On the left Project Explorer window, expand the Project and Microsoft Outlook Objects then double-click ThisOutlookSession
In the window on the right paste the code below. (If you already have code there then you will need to merge the Private definition section, the Application_Startup lines, and append subs below all.)
Then click Save, and restart 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