Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA, welche Taste wurde gedrückt?

VBA, welche Taste wurde gedrückt?
13.06.2004 19:30:50
Lupus
Hallo Excel-User,
Wie erkennt man per VBA-Code welche “Pfeiltaste” gedrückt wurde?

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
End Sub

Mit KeyAscii kann ich überprüfen welcher "Charakter" gedrückt wurde, aber wie funktionert das mit den "Pfeiltasten" (links, rechts oben,unten)?
Gruß Lupus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA, welche Taste wurde gedrückt?
K.Rola
Hallo,
falsches Ereignis, probiers mal so:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
TextBox1 = KeyCode
End Sub

Gruß K.Rola
AW: Bingo, danke, das war's; o.T
Lupus
.
AW: VBA, welche Taste wurde gedrückt?
13.06.2004 19:43:31
Josef
Hallo Luous!
"KeyPress" geht in diesem fall nicht, weil den Pfeiltasten keine
Ascii-Codes zugeordnet sind, aber du kannst das "KeyDown" Ereignis nützen.

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 37
MsgBox "Nach links gedrückt!"
Case 38
MsgBox "Nach oben gedrückt!"
Case 39
MsgBox "Nach rechts gedrückt!"
Case 40
MsgBox "Nach unten gedrückt!"
Case Else
End Select
End Sub

Gruß Sepp
Anzeige
Sorry K.Rola ;-) o.T.
13.06.2004 19:44:20
Josef
Gruß Sepp
Immer nice to meet You oT
K.Rola
oT
AW: Danke Sepp, o.T
Lupus
.
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mit VBA den Tastendruck abfragen


Schritt-für-Schritt-Anleitung

Um per VBA in Excel herauszufinden, welche Taste gedrückt wurde, kannst du das KeyDown-Ereignis verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, um dies umzusetzen:

  1. Öffne Excel und gehe zu den Entwicklertools.

  2. Füge ein Textfeld (TextBox) in dein Arbeitsblatt oder UserForm ein.

  3. Klicke mit der rechten Maustaste auf das Textfeld und wähle "Code anzeigen".

  4. Füge den folgenden Code ein, um den Tastendruck abzufragen:

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
       Select Case KeyCode
           Case 37
               MsgBox "Nach links gedrückt!"
           Case 38
               MsgBox "Nach oben gedrückt!"
           Case 39
               MsgBox "Nach rechts gedrückt!"
           Case 40
               MsgBox "Nach unten gedrückt!"
           Case Else
               MsgBox "Eine andere Taste wurde gedrückt: " & KeyCode
       End Select
    End Sub
  5. Schließe den Code-Editor und teste das Textfeld, indem du die Pfeiltasten drückst.


Häufige Fehler und Lösungen

  • Problem: Es wird keine Meldung angezeigt, wenn eine Pfeiltaste gedrückt wird.

    • Lösung: Stelle sicher, dass du das KeyDown-Ereignis verwendest, anstatt das KeyPress-Ereignis. Das KeyPress-Ereignis erfasst keine Pfeiltasten, da diesen keine ASCII-Codes zugeordnet sind.
  • Problem: Falsche KeyCodes werden angezeigt.

    • Lösung: Überprüfe die KeyCode-Werte in der Select Case-Anweisung, da diese von 37 (links) bis 40 (unten) gehen. Du kannst auch die vba keycode tabelle nutzen, um weitere KeyCodes zu finden.

Alternative Methoden

Eine alternative Methode, um den Tastendruck abzufragen, ist die Verwendung von API-Funktionen, um den aktuellen Tastenzustand zu ermitteln. Dies erfordert jedoch fortgeschrittenere Kenntnisse in VBA und ist komplexer als die hier vorgestellte Methode.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das KeyDown-Ereignis in Kombination mit verschiedenen Excel-Funktionen verwenden kannst:

  • Beispiel 1: Ändere den Text in einer anderen Zelle, wenn eine Pfeiltaste gedrückt wird.

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      Select Case KeyCode
          Case 37
              Range("A1").Value = "Links gedrückt"
          Case 38
              Range("A1").Value = "Oben gedrückt"
          Case 39
              Range("A1").Value = "Rechts gedrückt"
          Case 40
              Range("A1").Value = "Unten gedrückt"
      End Select
    End Sub
  • Beispiel 2: Verwende ASCII-Codes, um benutzerdefinierte Funktionen zu erstellen, die auf spezifische Tasten reagieren.


Tipps für Profis

  • Achte darauf, die vba tastendruck abfragen-Technik in der Benutzeroberfläche zu verwenden, um den Nutzer nicht zu irritieren.
  • Nutze MsgBox sparsam, um den Benutzer nicht mit zu vielen Benachrichtigungen zu überfluten.
  • Experimentiere mit verschiedenen KeyCodes, um herauszufinden, welche Tasten du in deinem Projekt unterstützen möchtest.

FAQ: Häufige Fragen

1. Welche Tasten kann ich mit VBA abfragen?
Du kannst nahezu jede Taste abfragen, die einen KeyCode hat, einschließlich der Pfeiltasten, Funktionstasten und Buchstabentasten.

2. Was ist der Unterschied zwischen KeyDown und KeyPress?
KeyDown wird ausgelöst, wenn eine Taste gedrückt wird, und eignet sich gut für nicht-druckbare Tasten wie Pfeiltasten. KeyPress hingegen wird für druckbare Zeichen verwendet und ist nicht für die Abfrage von Pfeiltasten geeignet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige