VBA SendKeys
Методът VBA SendKeys се използва за изпращане на натискания на клавиши до активното приложение:
1 | Application.SendKeys ("s") |
Горният код ще имитира натискането на клавиша „s“ на клавиатурата.
Методът SendKeys приема два аргумента:
- Ключове - Ключовете, които искате да изпратите до приложението като текст.
- Изчакайте (По избор)- Тази стойност може да бъде True или False. Ако е вярно, Excel изчаква първо ключовете да бъдат обработени, преди да изпълни следващия ред код. Ако е невярно, Excel продължава да изпълнява процедурата, без да чака ключовете да бъдат обработени.
SendKeys обикновено се използва при взаимодействие с други приложения, защото това е бърз и лесен начин за изпълнение на задачи. Например, можете да използвате SendKeys при автоматизиране на Internet Explorer.
Трябва обаче да бъдете изключително внимателни, когато използвате метода SendKeys, тъй като той може да има неочаквани резултати. Препоръчваме да използвате SendKeys само в краен случай и/или когато грешките са поносими (или лесно откриваеми).
Примери за VBA SendKeys
Всеки ключ от гледна точка на букви е представен от неговия знак, например а е „а“.
Ако искате да използвате клавиши в комбинация с Ctrl, Shift или Alt, тогава трябва да предхождате кода на ключа със следното:
Ключ | Код |
---|---|
Ctrl | ^ |
Преместване | + |
Алт | % |
Следният код използва метода SendKeys за запазване на работната книга:
12345 | Sub UsingSendKeys ()Application.SendKeys ("^s")End Sub |
Както споменахме по -рано, трябва да бъдете изключително внимателни, когато използвате SendKeys. Следният код посочва време за изчакване 10 секунди преди въвеждането/изпращането на текста в Notepad. Като изчакате 10 секунди, вие давате възможност на Notepad да се отвори правилно, намалявайки вероятността от грешка.
Забележка: Този код използва метода Application.Wait.
1234567 | Sub UsingSendKeysWithWait ()Call Shell ("C: \ Windows \ system32 \ Notepad.Exe", vbNormalFocus)Application.Wait (Now () + TimeValue ("00:00:10"))Обадете се SendKeys („Това е някакъв текст“, Вярно)End Sub |
Резултатът след 10 секунди изчакване е:
SendKeys може да бъде изключително бърз и лесен начин за изпълнение на задачи. Рискът от грешки обаче е сравнително висок. Използвайте SendKeys само когато този риск е приемлив!