Для мене відповіді, зазначені вище, незадовільні, оскільки вони обмежують, які комбінації я можу використовувати як спеціальні ярлики або які дії я можу націлити, або вони вимагають занадто багато роботи для чогось, що повинно бути простим.
Моє рішення - використовувати AutoHotkey для "перекладу" бажаних комбінацій клавіш у існуючі ярлики, яких очікує Outlook 2016 (або Excel 2016 або те, що у вас є) для цих дій.
Так, наприклад, коли я вибираю електронну пошту і натискаю [Ins], я хочу, щоб її було позначено як прочитане, тому я маю сценарій AutoHotkey замінити його на [Ctrl-Enter]. Або щоразу, коли я натискаю [Ctrl-f], я хочу перейти до вікна пошуку (d'oh!), Але Outlook очікує [Ctrl-e] для цього, тому я маю сценарій надіслати його [Ctrl-e]. Сценарій виглядає так:
SetTitleMatchMode RegEx
#IfWinActive - Outlook$
Ins::Send ^{Enter}
^f::Send ^e
#IfWinActive
"#IfWinActive" гарантує, що ці конкретні заміни натискання клавіш застосовуються лише тоді, коли заголовок активного вікна закінчується рядком "- Outlook" (кінець позначений знаком долара, який працює, тому що я включив режим узгодження рядків на основі регулярних виразів вище). Потім я відключаю активне виявлення заголовка вікна із порожнім #IfWinActive в кінці.
Крім того, після натискання #IfWinActive я точно знаю, яке вікно отримає ключі, які я надсилаю, тому мені не потрібно робити нічого особливого, крім простого "Надіслати <ключі>" у відповідь на кожне реальне натискання клавіші тобто підлягає заміні.