VBA SendKeys

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!

wave wave wave wave wave