После некоторого осмотра, в конце концов нашел способ (с использованием AutoHotKey ), который работает в Excel и везде, без явного нарушения (адаптировано из нескольких различных решений на форумах AutoHotKey, хотя я не записывал источники, поэтому не могу дать соответствующий кредит извините).
MS Excel, кажется, имеет некоторые странные способы обработки своего пользовательского интерфейса (хотя, так или иначе, после многих лет просмотра того, что разработчики MS Office дали нам, я не настолько удивлен). Этот скрипт, кажется, работает практически везде, кроме MS Word - если кто-то может решить эту проблему, то дайте мне знать! Вероятно, это что-то вроде поиска класса окна для Word и его кодирования, как это было сделано в Excel (просто с другим набором привязок клавиш).
#Singleinstance Force #IfWinActive ahk_class XLMAIN +WheelUp:: SetScrollLockState, On SendInput SetScrollLockState, Off Return +WheelDown:: SetScrollLockState, On SendInput SetScrollLockState, Off Return ; Everything except Excel. #IfWinNotActive ahk_class XLMAIN +WheelUp:: ; Scroll left. ControlGetFocus, fcontrol, A Loop 4 ; <-- Increase this value to scroll faster. SendMessage, 0x114, 0, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINELEFT. return +WheelDown:: ; Scroll right. ControlGetFocus, fcontrol, A Loop 4 ; <-- Increase this value to scroll faster. SendMessage, 0x114, 1, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINERIGHT. return #IfWinActive