Script AutoHotkey para rolagem horizontal no Excel não funciona para gráficos

0

Estou usando este script para rolagem horizontal usando shift + mousewheel para excel:

#IfWinActive, ahk_class XLMAIN
+WheelDown::ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,3,0)
+WheelUp::ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,0,3)

Funciona muito bem para as tabelas, mas quando eu mantenho a tecla Shift e rola as folhas de gráfico, recebo este erro:

Error 0x800A03EC -
Source: Microsoft Excel
Description: Unable to get the SmallScroll proprety of the Window class
HelpFile: xlmain11.chm
HelpContext: 0

Specifically: SmallScroll

        Line#
        002: Return
--->    002:
 ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,3,0)
        002: Return
        003:
 ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,3,0)
        003: Return
        004: Exit
        004: Exit
        004: Exit

Existe alguma maneira de consertar isso ou eu sempre estarei arrastando a barra de rolagem porque o ux do Excel é uma droga?

Estou usando o Excel 2016 no Windows 10.

    
por Marcel 22.02.2016 / 20:13

2 respostas

2

Eu sei que isso é antigo, mas aqui está uma resposta para aqueles que estão procurando por rolagem horizontal no Excel.

O script AutoHotKey abaixo funciona. Eu adaptei o script do BevanFindlay encontrado aqui para trabalhar com minhas necessidades. Descobri que o script dele funcionava no Excel, mas em nenhum outro lugar.

Eu fiz alguns testes no Excel 2010 e ele ainda rola bem em planilhas com gráficos. Se você tiver dados no gráfico selecionado, ele realmente rolará pelos dados, o que é interessante, se inesperado. No entanto, ele rolará horizontalmente como normal, desde que você não tenha os dados no gráfico selecionado. Espero que isso ajude!

#Singleinstance Force

;Horizontal scrolling in Excel only
#IfWinActive ahk_class XLMAIN

    +WheelUp:: 
        SetScrollLockState, On 
        SendInput {Left} 
        SetScrollLockState, Off 
    Return 

    +WheelDown:: 
        SetScrollLockState, On 
        SendInput {Right} 
        SetScrollLockState, Off 
    Return 

; Horizontal scrolling in everything except Excel. 
#IfWinNotActive ahk_class XLMAIN 

    +WheelDown::WheelRight
    +WheelUp::WheelLeft
    
por 07.02.2017 / 17:29
-1

Eu encontrei o script acima para ser desajeitado e lento: basicamente envia um número definido de comandos {Left} ou {Right}. Nenhuma das soluções da AHK parece ser confiável.

Este programa no GitHub funciona excepcionalmente bem para a rolagem horizontal do Excel e do Word 2016 link Basta pressionar Shift e girar a roda ...

    
por 08.12.2017 / 04:11