Como faço para criar um gancho de teclado usando o VBA no MS Word 2007?

1

Como faço para criar e usar um gancho de teclado para acionar macros VBA?

Isso está relacionado às perguntas "Como faço para acionar uma macro quando alguém digita" ou "Existe um evento de digitação no VBA para o MS Word". A resposta tem sido geralmente você precisa criar um gancho de teclado winAPI e usá-lo para acionar sua macro - mas nenhuma das respostas que eu poderia encontrar realmente nos disse como criar o gancho e nenhum do código de exemplo que eu poderia encontrar funcionaria. A maioria dos resultados do google que encontrei sobre esse tópico levaram a artigos 404 ou movidos.

Edit: O objetivo final é ser capaz de disparar um evento sempre que o corpo do documento for alterado, portanto, execute uma função sempre que uma tecla de letra única for pressionada e use as teclas numéricas 0 para 9 como teclas de atalho sem usar Ctrl, Alt ou qualquer tecla modificadora .

Alguém que tenha uma melhor compreensão dos ganchos de teclado do VBA pode postar um exemplo de uma função de macro que é acionada por qualquer pressionamento de tecla? Ou pressionando teclas particulares?

    
por user6212 09.09.2015 / 17:04

2 respostas

0

Isto foi feito em 2010, mas deve ser similar para 2007.

Você pode criar sua macro e acessar as opções - personalizar - atalhos de teclado: personalizar

Eatribua-oporlá.

Comoalternativa,comoissonãopodeserrealizadocomoVBA,énecessáriogravarumamacroatribuídaaumatalhoe,emseguida,alterarocódigo.

Naguiadodesenvolvedor,cliqueem"macro de registro" e atribua a macro ao teclado -

Emseguida,atribuaseuatalho-

Quando você para de gravar, você pode entrar no VBE e alterá-lo para o que você precisa. Não haverá indicação no código que tenha um atalho de teclado.

    
por 17.09.2015 / 18:03
0

Resposta curta: não tente fazer isso no VBA. Encontre outro meio de mapeamento de 0 a 9 para teclas de atalho que o Word entenda. Os drivers do Microsoft IntelliType podem fazer isso e o AutoHotKey também. Ambos têm a capacidade de fazer esse mapeamento apenas para o Word, sem afetar outros aplicativos. O AutoHotKey tem muito mais poder e pode facilmente mapear uma única tecla em muitos pressionamentos de tecla.

Long Answer: Os ganchos do teclado são muito difíceis de acertar, mesmo em linguagens como VB.NET e C #, já que não fazem parte do .NET. Por exemplo, se você ligar a fila do teclado, mas não soltar quando feito, coisas muito ruins acontecerão (como o crash do Visual Studio). C ++ não é melhor, mas os programadores de C ++ estão acostumados a trabalhar em um ambiente implacável. (IWO tudo cai o tempo todo.)

Eu recomendo olhar para o AutoHotKey. No lado positivo, macros de teclado são sua força. A desvantagem é que a sintaxe é inconsistente. Eu tenho que olhar para a minha folha de cola depois de muitos anos de uso intermitente.

    
por 28.12.2016 / 17:15