VBA SendKeys

VBA SendKeys

Die VBA SendKeys-Methode wird verwendet, um Tastenanschläge an die aktive Anwendung zu senden:

1 Application.SendKeys ("s")

Der obige Code imitiert das Drücken der Taste „s“ auf der Tastatur.

Die SendKeys-Methode akzeptiert zwei Argumente:

  • Schlüssel - Die Schlüssel, die Sie als Text an die Anwendung senden möchten.
  • Warte ab (Optional)- Dieser Wert kann entweder True oder False sein. Bei True wartet Excel auf die Verarbeitung der Schlüssel, bevor die nächste Codezeile ausgeführt wird. Bei False führt Excel die Prozedur weiterhin aus, ohne auf die Verarbeitung der Schlüssel zu warten.

SendKeys wird normalerweise bei der Interaktion mit anderen Anwendungen verwendet, da es eine schnelle und einfache Möglichkeit ist, Aufgaben zu erledigen. Sie können beispielsweise SendKeys verwenden, wenn Sie Internet Explorer automatisieren.

Sie sollten jedoch äußerst vorsichtig sein, wenn Sie die SendKeys-Methode verwenden, da sie unerwartete Ergebnisse haben kann. Wir empfehlen, SendKeys nur als letztes Mittel zu verwenden und/oder wenn Fehler tolerierbar (oder leicht erkennbar) sind.

VBA SendKeys-Beispiele

Jede Taste in Form von Buchstaben wird durch ihr Zeichen dargestellt, zum Beispiel ist a „a“.
Wenn Sie Tasten in Kombination mit Strg, Umschalt oder Alt verwenden möchten, müssen Sie dem Tastencode Folgendes voranstellen:

Taste Code
Strg ^
Schicht +
Alt %

Der folgende Code verwendet die SendKeys-Methode, um die Arbeitsmappe zu speichern:

12345 Unter UsingSendKeys()Application.SendKeys ("^s")End Sub

Wie bereits erwähnt, müssen Sie bei der Verwendung von SendKeys äußerst vorsichtig sein. Der folgende Code legt eine Wartezeit von 10 Sekunden fest, bevor der Text eingegeben/an Notepad gesendet wird. Indem Sie 10 Sekunden warten, geben Sie Notepad die Möglichkeit, sich ordnungsgemäß zu öffnen, wodurch die Wahrscheinlichkeit eines Fehlers verringert wird.

Hinweis: Dieser Code verwendet die Application.Wait-Methode.

1234567 Unter UsingSendKeysWithWait()Call Shell("C:\Windows\system32\Notepad.Exe", vbNormalFocus)Application.Wait (Now() + TimeValue("00:00:10"))Call SendKeys("Dies ist ein Text", True)End Sub

Das Ergebnis nach 10 Sekunden Wartezeit ist:

SendKeys können eine extrem schnelle und einfache Möglichkeit sein, Aufgaben zu erledigen. Das Fehlerrisiko ist jedoch relativ hoch. Verwenden Sie SendKeys nur, wenn dieses Risiko akzeptabel ist!

wave wave wave wave wave