VBA SendKeys
Metoda VBA SendKeys służy do wysyłania naciśnięć klawiszy do aktywnej aplikacji:
1 | Application.SendKeys ("s") |
Powyższy kod będzie naśladował naciśnięcie klawisza „s” na klawiaturze.
Metoda SendKeys przyjmuje dwa argumenty:
- Klucze - klucze, które chcesz wysłać do aplikacji jako tekst.
- Czekać (Opcjonalny)- Ta wartość może mieć wartość True lub False. Jeśli True, program Excel czeka na przetworzenie kluczy przed uruchomieniem następnego wiersza kodu. Jeśli False, program Excel kontynuuje procedurę, nie czekając na przetworzenie kluczy.
SendKeys jest zwykle używany podczas interakcji z innymi aplikacjami, ponieważ jest to szybki i łatwy sposób wykonywania zadań. Na przykład możesz użyć SendKeys podczas automatyzacji programu Internet Explorer.
Należy jednak zachować szczególną ostrożność podczas korzystania z metody SendKeys, ponieważ może ona dawać nieoczekiwane wyniki. Zalecamy używanie SendKeys tylko w ostateczności i/lub gdy błędy są tolerowane (lub łatwo wykrywalne).
Przykłady SendKeys VBA
Każdy klawisz pod względem liter jest reprezentowany przez ich znak, na przykład a to „a”.
Jeśli chcesz używać klawiszy w połączeniu z Ctrl, Shift lub Alt, musisz poprzedzić kod klawisza następującym:
Klucz | Kod |
---|---|
klawisz kontrolny | ^ |
Zmiana | + |
Alt | % |
Poniższy kod używa metody SendKeys do zapisania skoroszytu:
12345 | Sub za pomocąSendKeys()Application.SendKeys ("^s")Napis końcowy |
Jak wspomnieliśmy wcześniej, musisz być bardzo ostrożny podczas korzystania z SendKeys. Poniższy kod określa czas oczekiwania 10 sekund, zanim tekst zostanie wprowadzony/wysłany do Notatnika. Odczekując 10 sekund, pozwalasz Notatnikowi na prawidłowe otwarcie, zmniejszając ryzyko błędu.
Uwaga: Ten kod korzysta z metody Application.Wait.
1234567 | Sub przy użyciuSendKeysWithWait()Wywołaj powłokę("C:\Windows\system32\Notepad.Exe", vbNormalFocus)Application.Wait (Teraz() + TimeValue("00:00:10"))Wywołaj SendKeys("To jest jakiś tekst", Prawda)Napis końcowy |
Wynik po 10 sekundach oczekiwania to:
SendKeys może być niezwykle szybkim i łatwym sposobem wykonywania zadań. Jednak ryzyko błędów jest stosunkowo wysokie. Używaj SendKeys tylko wtedy, gdy to ryzyko jest akceptowalne!