VBA SendKeys
Metoda VBA SendKeys se používá k odesílání úhozů do aktivní aplikace:
1 | Application.SendKeys ("s") |
Výše uvedený kód bude napodobovat stisknutí klávesy „s“ na klávesnici.
Metoda SendKeys přebírá dva argumenty:
- Klíče - Klíče, které chcete odeslat do aplikace jako text.
- Počkej (Volitelný)- Tato hodnota může být True nebo False. Pokud je to pravda, Excel čeká na spuštění klíčů nejprve před spuštěním dalšího řádku kódu. Pokud je hodnota False, aplikace Excel pokračuje ve spouštění postupu bez čekání na zpracování klíčů.
SendKeys se obvykle používá při interakci s jinými aplikacemi, protože je to rychlý a snadný způsob plnění úkolů. SendKeys můžete například použít při automatizaci aplikace Internet Explorer.
Při používání metody SendKeys byste však měli být velmi opatrní, protože může mít neočekávané výsledky. SendKeys doporučujeme používat pouze jako poslední možnost a/nebo pokud jsou chyby tolerovatelné (nebo snadno zjistitelné).
Příklady VBA SendKeys
Každý klíč z hlediska písmen je reprezentován jejich znakem, například a je „a“.
Pokud chcete použít klávesy v kombinaci s Ctrl, Shift nebo Alt, musíte před kód klíče zadat následující:
Klíč | Kód |
---|---|
Ctrl | ^ |
Posun | + |
Alt | % |
Následující kód používá k uložení sešitu metodu SendKeys:
12345 | Sub UsingSendKeys ()Application.SendKeys ("^s")End Sub |
Jak jsme již zmínili, při používání SendKeys musíte být velmi opatrní. Následující kód určuje čekací dobu 10 sekund, než se text zadá/odešle do Poznámkového bloku. Čekáním 10 sekund umožníte programu Poznámkový blok šanci správně se otevřít, čímž snížíte pravděpodobnost chyby.
Poznámka: Tento kód používá metodu Application.Wait.
1234567 | Sub UsingSendKeysWithWait ()Call Shell ("C: \ Windows \ system32 \ Notepad.Exe", vbNormalFocus)Application.Wait (Now () + TimeValue ("00:00:10"))Volejte SendKeys („This is some Text“, True)End Sub |
Výsledek po 10 sekundách čekací doby je:
SendKeys může být extrémně rychlý a snadný způsob plnění úkolů. Rizika chyb jsou však poměrně vysoká. SendKeys používejte pouze tehdy, je -li toto riziko přijatelné!