VBA SendKeys - Wie Verwenden der SendKeys-Methode in Excel VBA?

Inhaltsverzeichnis:

Anonim

Excel VBA SendKeys

In diesem Artikel sehen wir eine Übersicht über Excel VBA SendKeys. Haben Sie jemals darüber nachgedacht, ein Programm zu erstellen, das Ihr Arbeitsblatt automatisch speichert, und Sie müssen dazu nicht die Tastenkombination Strg + S oder Excel-Speichern drücken? Es scheint eine Fantasie zu sein, oder? Dies kann jedoch durchgeführt werden. In VBA gibt es eine Befehlsanweisung namens SendKeys, mit der Sie die Tastendrücke wie mit der Tastatur an die Anwendung senden können. (Beispiel: Speichern der Datei. Sie drücken die Tastenkombination Strg + S, um eine Datei zu speichern.) Es wird empfohlen, SendKeys als letzte Option zu verwenden, während Sie eine Aufgabe automatisieren. Der Grund dafür ist, wie wir bereits besprochen haben, dass SendKeys die Tastenanschläge an die Anwendung sendet, die gerade aktiv ist. Was ist, wenn zum Zeitpunkt der Codeausführung ein Anwendungsfenster aktiv ist, unter dem die Änderungen nicht durchgeführt werden sollen? Es wird unerwartete Ergebnisse geben, oder? Dies ist der einzige Grund, warum wir SendKeys als letzte Option verwenden sollten, wenn wir die Dinge automatisieren. Es kann jedoch für die kleine Automatisierung verwendet werden, bei der keine andere Anwendungsumgebung die Umgebung stören soll, in der die Änderung durchgeführt werden soll.

Syntax SendKeys Methode:

SendKeys(String As String, (Wait))

Wo,

Das erste Argument 'String As String' gibt die Tastenkombinationen an, die Sie unter dem Programm verwenden möchten (z. B. Strg + S wäre die Tastenkombination).

Wait wäre ein optionaler Parameter, der die Booleschen Werte TRUE und FALSE annimmt. Wenn die Wartezeit den Wert TRUE hat, bedeutet dies, dass das System auf die Verarbeitung der Schlüssel wartet und dann in die nächste Zeile wechselt und diese kompiliert / ausführt. Wenn der Wartewert FALSE ist (kann leer bleiben), wartet das System nicht auf die Verarbeitung der Schlüssel und führt den gesamten Code weiter aus.

Es gibt bestimmte Methoden, mit denen Sie die Tastenanschläge mit Strg, Umschalt oder Alt kombinieren können. Mal sehen, wie wir das machen können. Die folgende Tabelle gibt die Tastenkombinationen für SendKeys mit Strg, Umschalt und Alt an:

Zu kombinierender Schlüssel Operator, der vor den Tasten für die Kombination verwendet werden soll
Verschiebung + (Tastatur Pluszeichen)
Strg (Caret Operator-Zeichen)
Alt % (Prozentzeichen)

Nun, was heißt das? Wenn Sie eine Tastenkombination als Strg + S unter dem Code verwenden möchten, können Sie die SendKeys-Methode verwenden und dies mit SendKeys, dann einem Caret (^) -Operator für Strg und dann "s" tun. Das aktuelle Arbeitsblatt wird in Ihrer Excel-Datei gespeichert.

Wie Verwenden der SendKeys-Methode in Excel VBA?

Wir werden lernen, wie Sie die SendKeys-Methode in Excel mithilfe des VBA-Codes verwenden.

Sie können diese VBA SendKeys Excel-Vorlage hier herunterladen - VBA SendKeys Excel-Vorlage

VBA SendKeys - Beispiel # 1

Lassen Sie uns einige einfache Beispiele zeigen, anhand derer wir uns eingehender mit der Funktionsweise des VBA-Befehls SendKeys befassen können.

In diesem ersten Beispiel sehen wir eine sehr einfache Automatisierung, die die aktuell geöffnete Excel-Datei automatisch speichert. Sie müssen weder die Schaltfläche Speichern noch Strg + S drücken, um die Datei zu speichern. Befolgen Sie die nachstehenden Schritte, um das Ergebnis zu erzielen.

Schritt 1: Öffnen Sie das Modul über die Registerkarte Einfügen (siehe unten).

Schritt 2: Definieren Sie eine neue Unterprozedur, die Ihr Makro enthalten kann.

Code:

 Sub Example_1 () End Sub 

Schritt 3: Um eine Datei zu speichern, müssen Sie die Tastenkombination Strg + S drücken, um sie in Code umzuwandeln. Als Argument für die SendKeys-Anweisung können Sie den Caret-Operator (^) und dann das Schlüsselwort "s" verwenden.

Code:

 Sub Example_1 () Application.SendKeys ("s") End Sub 

Das Schlüsselwort Application gibt hier die Anwendung an, an die die Tastatureingaben gesendet werden (in diesem Fall Excel-Anwendung). "S" in Klammern gibt die ähnliche Tastaturoperation an: Strg + S.

Schritt 4: Führen Sie diesen Code aus, indem Sie auf die Schaltfläche Ausführen klicken oder die Taste F5 drücken.

Nach der erfolgreichen Ausführung dieses Codes wird Ihre Datei gespeichert.

VBA SendKeys - Beispiel # 2

Nun wird gezeigt, wie Sie eine aktuelle Anwendung schließen, indem Sie mit der SendKeys-Methode Softkeys über den Makrocode senden. Folgen Sie den unteren Schritten:

Schritt 1: Schreiben Sie die Unterprozedur, die Ihr Makro unter dem Modul enthalten kann.

Code:

 Sub Example_2 () End Sub 

Schritt 2: Verwenden Sie die Application.SendKeys-Methode, um die Tastatur-Softkeys an die Anwendung zu übergeben. Da der aktuelle VBA-Bereich mit der Tastenkombination Alt + Q geschlossen werden kann, können wir unter Makro "% q" verwenden.

Code:

 Sub Example_2 () Application.SendKeys ("% q") End Sub 

Schritt 3: Drücken Sie die Taste Ausführen oder F5, um diesen Code auszuführen. Sobald Sie diesen Code ausführen, wird der aktuelle Visual Basic-Editor geschlossen und Sie navigieren zur Excel-Datei.

VBA SendKeys - Beispiel # 3

Jetzt schreiben wir einen Code, der automatisch den Editor öffnet und einen Text darin schreibt. Siehe den Screenshot unten:

Schritt 1: Schreiben Sie die Unterprozedur, die Ihr Makro unter dem Modul enthalten kann.

Code:

 Sub Example_3 () End Sub 

Über die Call Shell kann das System die Anwendung öffnen. Der Pfad befindet sich, wo sich das Notepad.exe befindet. vbNormalFocus ist ein optionales Argument, das den Fokus auf das Öffnen und Wiederherstellen der Anwendung in der ursprünglichen Größe und Position festlegt.

Schritt 2: Verwenden Sie Call und Sendkeys in Kombination, damit das System einen Text in Notepad hinzufügen kann.

Code:

 Sub Example_3 () Rufen Sie die Shell auf ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub 

Schritt 3: Hier fügen wir den Text "Hallo VBA!" Mit SendKeys zum Editor hinzu. True gibt die Wartezeit für den SendKeys-Befehl an.

Code:

 Sub Example_3 () Aufruf der Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Aufruf von SendKeys ("Hello VBA!", True) End Sub 

Schritt 4: Führen Sie diesen Code aus, indem Sie die Taste F5 drücken oder auf die Schaltfläche Ausführen klicken.

Auf diese Weise können wir die SendKeys-Methode verwenden, um die Anwendungen über ein VBA-Makro zu automatisieren.

Dinge, an die man sich erinnern sollte

  • Seien Sie beim Verwenden von SendKeys sehr vorsichtig, da dies zu unerwarteten Ergebnissen führen kann, wenn mehrere Anwendungen geöffnet sind.
  • Sie können die SendKeys verwenden, um kleine Aufgaben wie das Speichern einer Excel-Datei oder das Schließen einer Excel-Datei usw. zu automatisieren.
  • Verwenden Sie die SendKeys-Methode als letzte Option, während Sie versuchen, die Dinge zu automatisieren.

Empfohlener Artikel

Dies ist eine Anleitung zu VBA SendKeys. Hier wird die Verwendung der SendKeys-Methode in Excel VBA zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage erläutert. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA While-Schleife (Beispiele mit Excel-Vorlage)
  2. VBA Environ | Excel-Vorlagen
  3. VBA Goal Seek (Beispiel)
  4. Wie man Namensarbeitsblatt in Excel VBA ändert?