В вашей жизни наверняка встречались ситуации, когда приходилось подолгу и часто нажимать одну и ту же клавишу при выполнении тех или иных действий или их подтверждения. Для меня, в своё время, оператор Sendkeys стал настоящим открытием. С его помощью можно создать эмуляцию нажатия той или иной клавиши, а также их сочетаний как в рамках Excel, так и вне его.
Синтаксис оператора
Сам по себе оператор довольно прост и выглядит следующим образом:
Application.SendKeys ("клавиша/сочетание клавиш")
"клавиша/сочетание клавиш" - это те клавиши, сочетание которых вы хотите эмулировать, т.е. сделать так чтобы макрос нажали их за вас. Более подробно о них расскажу ниже
"Клавиша/сочетание клавиш"
Клавиши/сочетания клавиш прописываются в кавычках (""), при этом в одни кавычки можно поставить несколько символов.
Например, нам нужно, чтобы макрос написал слово привет, тогда операция будет выглядеть так:
Application.SendKeys ("привет")
Стоит обратить внимание: при вводе текста язык ввода будет соответствовать той раскладке, которая установлена на клавиатуре
То, как прописывать "специальные" клавиши показано в таблице ниже:
Например, если необходимо ввести то же слово "привет" в ячейку Excel, а потом нажать Enter, чтобы текст записался, то оператор будет выглядеть следующим образом:
Application.SendKeys ("привет~") или Application.SendKeys ("привет{ENTER}")
Shift, Ctrl, Alt
Специально выделил эти 3 клавиши, т.к. на их сочетании завязано большинство команд в Windows(да и не только) с клавиатуры.
Нажатие/зажатие этих клавиш в коде оператора прописывается следующим образом:
При этом, постановка кода относится только к тому знаку, перед которым проставлен код клавиши.
Если в примере выше поставить знак "+" (имитация нажатия клавиши Shift)
Application.SendKeys ("+привет~")
То результатом будет Привет
Множественные нажатия
В случае, когда необходимо нажать клавишу больше, чем один раз, необходимо каждую подобную клавишу заключать в фигурные скобки ({}) и указывать количество нажатий. Например мы хотим, чтобы буква "е" повторилась три раза при отработке макроса. Для этого вносим изменения в макрос выше:
Application.SendKeys ("+прив{е 3}т~")
Результатом отработки будет Привееет
Про то, как работает макрос, я рассказываю в видео: https://rutube.ru/video/a1903bf1f2d0cc9ac5c201684a48e9da/