Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.SendKeys

Forumthread: Application.SendKeys

Application.SendKeys
25.03.2013 15:26:57
Albert
Hallo zusammen,
kann mir jemand sagen, wie man mit SendKeys die Tastenkombination aus Alt und der Eins schicken kann?
Dank und Gruß
A.

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.SendKeys
25.03.2013 16:19:16
Oberschlumpf
Hi A.
Hmm, steht das nicht in der Excel-Hilfe?
Doch, tut es, hab gerade nachgeschaut.
Sorry, diese Frage, aber VBA = wirklich gut?
Ciao
Thorsten

Oberschlumpf => Sarkasmus unerwünscht!
26.03.2013 07:41:24
Albert
Moin Thorsten,
nachdem ich über deine Antwort erstmal schlafen musste, hab ich heute den Input eines anderen, hilfsbereiten Forumsmitglied verwendet.
Ich weiß zwar nicht, in welcher Excel-Hilfe du das gefunden hast, ich habs nicht. Sonst hätte ich ja auch nicht ins Forum geschrieben.
Sorry diese Frage, aber du solltest in einem Forum nicht mit Sarkasmus um dich werfen. Denn du könntest auf Menschen treffen, die ein Problem haben, dringend Hilfe benötigen und nicht auf DEINEN Sarkasmus warten. Also lass das...
Gruß
A.

Anzeige
AW: @Albert
26.03.2013 09:39:57
hary
Moin Albert
"in welcher Excel-Hilfe du das gefunden hast, ich habs nicht"
Mit Alt+F11 in den Editor. Dann oben Ansicht/Objektkatalog. Neben dem Fernglas eingeben: sendkeys
Unten im grossen Feld auf sendkeys klicken und F1 Taste druecken.
Auszug:
----------------------------------------------------
Syntax
Ausdruck.SendKeys(Keys, Wait)
Ausdruck Eine Variable, die ein Application-Objekt darstellt.
Parameter
Name Erforderlich/Optional Datentyp Beschreibung
Keys Erforderlich Variant Die Taste oder Tastenkombination, die Sie als Text an die Anwendung senden möchten.
Wait Optional Variant True, wenn Microsoft Excel auf das Ende der Tastenverarbeitung warten soll, bevor die Steuerung an das Makro zurückgegeben wird. Bei False oder keiner Angabe wird das Makro weiter ausgeführt, ohne dass auf die Verarbeitung der Tasten gewartet wird.
Anmerkungen
Diese Methode schreibt Tastenkombinationen in einen Tastenpuffer. In einigen Fällen müssen Sie diese Methode vor der Methode aufrufen, die die Tastenkombinationen verwendet. Um z.B. ein Kennwort an ein Dialogfeld zu senden, müssen Sie die SendKeys-Methode aufrufen, bevor Sie das Dialogfeld anzeigen.
Mit dem Argument Keys kann eine einzelne Taste oder aber eine beliebige Taste, kombiniert mit den Tasten ALT, STRG oder UMSCHALT (oder jeder Kombination dieser Tasten), angegeben werden. Jede Taste wird durch eines oder mehrere Zeichen dargestellt, z. B. durch "a" für das Zeichen a oder "{ENTER}" für die EINGABETASTE.
-----------------------------------------------------------
Die VBA Hilfe sollte eigentlich installiert sein. Bitte nicht uebel nehmen ;-) ist nur zur Info.
gruss hary

Anzeige
AW: @Albert
26.03.2013 16:55:52
Albert
Hi Hary,
Dankeschön für deine detaillierte Erklärung.
Der Objektkatalog ist sehr umfangreich und die einzelnen Punkte im Sendkeys hab ich schon verstanden.
Mir wars eben so mit dem %1, dass hier die ALT-Taste einmal "gedrückt" wird.
Aber egal, danke nochmals.
Grüße
A.

Anzeige
AW: Application.SendKeys
25.03.2013 17:17:03
{Boris}
Hi Albert,
Application.SendKeys "%1"
oder auch
Application.SendKeys "{F12}"
VG, Boris

AW: Application.SendKeys
26.03.2013 07:42:05
Albert
Moin Boris,
danke für deine schnelle Hilfe.
Das klappt gut!
Vielen Dank und schöne Restwoche
Albert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Anwendung von Application.SendKeys in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Application.SendKeys-Methode in Excel VBA zu verwenden, befolge diese Schritte:

  1. Öffne den Visual Basic for Applications (VBA) Editor mit Alt + F11.

  2. Klicke auf „Einfügen“ und wähle „Modul“, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein, um die SendKeys-Methode zu verwenden:

    Sub BeispielSendKeys()
       Application.SendKeys "%1" ' Sendet Alt + 1
       Application.SendKeys "{ENTER}" ' Sendet die Eingabetaste
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um die Tastenanschläge zu senden.

Mit Application.SendKeys kannst Du verschiedene Tasten und Tastenkombinationen senden, z.B. "{TAB}" für die Tabulatortaste oder "{ESC}" für die Escape-Taste.


Häufige Fehler und Lösungen

  • Problem: Das Makro funktioniert nicht, wenn ich SendKeys verwende.

    • Lösung: Stelle sicher, dass Du die Tastenkombinationen korrekt eingegeben hast. Überprüfe auch, ob das aktuelle Fenster den Fokus hat.
  • Problem: SendKeys scheint keine Eingaben zu senden.

    • Lösung: Überprüfe den Parameter Wait. Wenn Du Wait:=True verwendest, wartet Excel, bis die Tastenanschläge verarbeitet sind, bevor das Makro fortgesetzt wird.

Alternative Methoden

Wenn Du keine SendKeys-Methode verwenden möchtest, kannst Du auch die SendInput-API oder die Shell-Funktion in VBA verwenden. Diese Methoden sind stabiler, erfordern jedoch zusätzliche Programmierung.

Ein einfaches Beispiel für die Verwendung von Shell:

Sub BeispielShell()
    Shell "notepad.exe", vbNormalFocus ' Öffnet den Notizblock
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungen der SendKeys-Methode:

  1. Eingabetaste senden:

    Application.SendKeys "{ENTER}"
  2. Tabulatortaste senden:

    Application.SendKeys "{TAB}"
  3. Alt-Taste zusammen mit einer Zahl senden:

    Application.SendKeys "%1" ' Sendet Alt + 1

Diese Beispiele können in verschiedenen Szenarien nützlich sein, z.B. beim automatischen Ausfüllen von Formularen oder beim Steuern von Dialogfeldern in anderen Anwendungen.


Tipps für Profis

  • Verwende SendKeys nicht in kritischen Anwendungen, da es unvorhersehbar sein kann.
  • Teste Deine Makros gründlich, insbesondere wenn sie SendKeys verwenden, um sicherzustellen, dass sie wie gewünscht funktionieren.
  • Füge ausreichend Pausen ein, insbesondere wenn Du mehrere Tastenanschläge sendest, um sicherzustellen, dass die Anwendung die Eingaben verarbeiten kann:

    Application.Wait (Now + TimeValue("0:00:01")) ' 1 Sekunde warten

FAQ: Häufige Fragen

1. Wie sende ich die Enter-Taste in Excel VBA?
Du kannst die Enter-Taste mit folgendem Code senden:

Application.SendKeys "{ENTER}"

2. Was ist der Unterschied zwischen SendKeys und SendInput?
SendKeys ist eine einfachere Methode, um Tastenanschläge zu senden, kann jedoch unzuverlässig sein. SendInput ist eine API-Methode, die robuster ist, aber mehr Programmieraufwand erfordert.

3. Kann ich mehrere Tastenanschläge gleichzeitig senden?
Ja, Du kannst mehrere Tastenanschläge in einer Zeile senden, z.B.:

Application.SendKeys "%{TAB}" ' Sendet Alt + Tab

4. Was mache ich, wenn SendKeys nicht funktioniert?
Überprüfe, ob das Zielanwendungsfenster aktiv ist und den Fokus hat. Versuche auch, die Wait-Option zu verwenden, um Verzögerungen zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige