VBA SendKeys

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é!

wave wave wave wave wave