Как создать обработчик клавиатуры с помощью VBA в MS Word 2007?

Как создать и использовать клавиатурный хук для запуска макросов VBA?

Это связано с вопросами "Как я могу вызвать макрос, когда кто-то печатает "или"есть ли событие ввода в VBA для MS Word". Ответ, как правило, необходимо создать по WinAPI Хук клавиатуры и использовать его для запуска своего макроса - но ни один из ответов я мог найти нам рассказали, как создать крюк, и никто из примера кода я мог бы найти работу. Большинство результатов google, которые я мог найти на эта тема приведет к 404-х или перемещенные статьи.

Edit: конечная цель состоит в том, чтобы иметь возможность запускать событие в любое время изменения тела документа, поэтому запускайте функцию в любое время a single клавиша letter нажата, и использовать цифровые клавиши от 0 до 9 в качестве горячих клавиш без использования Ctrl, Alt или любых клавиш-модификаторов.

может кто-то, кто имеет лучшее представление о VBA клавиатуры крючки пожалуйста, напишите пример макро-функции, которая срабатывает при нажатии любой клавиши? Или нажатием конкретные ключи?

8
задан user6212
27.12.2022 6:44 Количество просмотров материала 2931
Распечатать страницу

2 ответа

Это было сделано в 2010 году, но должно быть похоже на 2007 год.

вы можете создать свой макрос, а затем зайдите в опции - настройка - сочетания клавиш: настройка

enter image description here

и назначьте его там.

enter image description here


в качестве альтернативы, так как это не может быть выполнено с VBA, вам нужно записать макрос, назначенный ярлык, затем измените код.

на вкладке разработчика нажмите "Запись макроса" и назначить макрос клавиатуры -

enter image description here

затем назначьте ярлык -

enter image description here

когда вы остановите запись, вы можете перейти в VBE и изменить его на то, что вам нужно. В коде не будет никаких указаний на то, что у него есть сочетание клавиш.

0
отвечен Raystafarian 2022-12-28 14:32

краткий ответ: Не пытайтесь сделать это в VBA. Найдите другое средство сопоставления 0-9 с сочетаниями клавиш, которые понимает Word. Microsoft intellitype драйверы могут сделать это и так может AutoHotKey. Оба имеют возможность делать это отображение только для Word, не затрагивая другие приложения. AutoHotKey имеет гораздо больше мощности, и может легко сопоставить один ключ во многих нажатий клавиш.

Длинный Ответ: Клавиатура крючки очень трудно получить право даже в таких языках, как VB.NET а также c#, поскольку они не являются частью .Сеть. Например, если подключить очередь клавиатуры, но не отцепить, когда сделано очень плохие вещи (например, сбой Visual Studio) произойдет. C++ не лучше, но программисты на C++ привыкли работать в неумолимой среде. (IWO все падает все время.)

Я рекомендую посмотреть AutoHotKey. С другой стороны, макросы клавиатуры-это его сила. Недостатком является несогласованность синтаксиса. Я должен смотреть на свою шпаргалку после многих лет периодически используя его.

0
отвечен Andrew Dennison 2022-12-28 16:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх