Klávesy VBA Send
Na odoslanie stlačení klávesov aktívnej aplikácii sa používa metóda VBA SendKeys:
1 | Application.SendKeys ("s") |
Vyššie uvedený kód bude napodobňovať stlačenie klávesu „s“ na klávesnici.
Metóda SendKeys má dva argumenty:
- Klávesy - kľúče, ktoré chcete odoslať aplikácii ako text.
- Počkaj (Voliteľné)- Táto hodnota môže byť True alebo False. Ak je to pravda, Excel pred spustením ďalšieho riadka kódu počká, kým sa najskôr spracujú kľúče. Ak je to nepravdivé, Excel pokračuje v procedúre bez čakania na spracovanie kľúčov.
SendKeys sa zvyčajne používa pri interakcii s inými aplikáciami, pretože je to rýchly a ľahký spôsob vykonávania úloh. Klávesy SendKeys môžete napríklad použiť na automatizáciu programu Internet Explorer.
Pri použití metódy SendKeys by ste však mali byť veľmi opatrní, pretože môže mať neočakávané výsledky. Klávesy SendKeys odporúčame používať iba ako poslednú možnosť a/alebo vtedy, ak sú chyby tolerovateľné (alebo ľahko zistiteľné).
Príklady VBA SendKeys
Každý kľúč z hľadiska písmen je reprezentovaný ich znakom, napríklad a je „a“.
Ak chcete použiť klávesy v kombinácii s Ctrl, Shift alebo Alt, musíte kódu kľúča predchádzať nasledujúcim spôsobom:
Kľúč | Kód |
---|---|
Ctrl | ^ |
Smena | + |
Alt | % |
Nasledujúci kód používa na uloženie zošita metódu SendKeys:
12345 | Sub UsingSendKeys ()Application.SendKeys ("^s")Koniec pod |
Ako sme už uviedli, pri používaní klávesov SendKeys musíte byť veľmi opatrní. Nasledujúci kód určuje čakaciu dobu 10 sekúnd, kým sa text zadá/odošle do programu Poznámkový blok. Počkaním 10 sekúnd umožníte programu Poznámkový blok šancu správne sa otvoriť, čím sa zníži pravdepodobnosť chyby.
Poznámka: Tento kód používa metódu Application.Wait.
1234567 | Sub UsingSendKeysWithWait ()Zavolajte Shell ("C: \ Windows \ system32 \ Notepad.Exe", vbNormalFocus)Application.Wait (Now () + TimeValue ("00:00:10"))Zavolajte SendKeys („Toto je nejaký text“, pravda)Koniec pod |
Výsledok po 10 sekundách čakania je:
SendKeys môže byť mimoriadne rýchly a ľahký spôsob vykonávania úloh. Riziká chýb sú však relatívne vysoké. Klávesy SendKeys používajte iba vtedy, ak je toto riziko prijateľné!