VBA-Programmierung in Microsoft Excel

Tutorial: Die Dialoge

KeyDown-, KeyUp-Ereignisse

Treten nacheinander ein, wenn der Benutzer eine Taste drückt und wieder loslässt. Das KeyDown-Ereignis tritt ein, wenn der Benutzer eine Taste drückt. Das KeyUp-Ereignis tritt ein, wenn der Benutzer eine Taste loslässt.

Syntax

Private Sub object_KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)

Private Sub object_KeyUp( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)

Die Syntax der Ereignisse KeyDown und KeyUp besteht aus folgenden Teilen:

Teil Beschreibung
object Erforderlich. Ein gültiger Objektname.
KeyCode Erforderlich. Eine Ganzzahl, die den Tasten-Code der Taste angibt, die gedrückt oder losgelassen wurde.
Shift Erforderlich. Der Zustand der Tasten UMSCHALT, STRG und ALT.

Einstellungen

Die Einstellungen für Shift sind:

Konstante Wert Beschreibung
fmShiftMask 1 UMSCHALT wurde gedrückt.
fmCtrlMask 2 STRG wurde gedrückt.
fmAltMask 4 ALT wurde gedrückt.

Hinweise

Das KeyDown-Ereignis tritt ein, wenn der Benutzer in einem Formular, das gerade ausgeführt wird, auf eine Taste drückt, während dieses Formular oder eines seiner Steuerelemente den Fokus hat. Die Ereignisse KeyDown und KeyPress wechseln sich so lange gegenseitig ab, bis der Benutzer die Taste loslässt und das KeyUp-Ereignis eintritt. Das Formular oder Steuerelement mit dem Fokus empfängt alle Tastenanschläge. Ein Formular kann den Fokus nur erhalten, wenn es keine Steuerelemente enthält oder alle sichtbaren Steuerelemente deaktiviert sind.

Diese Ereignisse treten auch ein, wenn Sie einen Tastenanschlag an ein Formular oder an ein Steuerelement entweder mit der SendKeys-Aktion in einem Makro oder mit der SendKeys-Anweisung in Visual Basic senden.

Die Ereignisse KeyDown und KeyUp werden normalerweise verwendet, um Folgendes zu erkennen oder zwischen folgendem zu unterscheiden:

  • Tasten, die als Erweiterung zu den normalen Buchstaben verwendet werden, wie z.B. Funktionstasten.

  • Richtungstasten, wie z.B. POS1, ENDE, BILD-AUF, BILD-AB, NACH-OBEN, NACH-UNTEN, NACH-RECHTS, NACH-LINKS und TAB.

  • Kombinationen von Tasten und Standardzustandstasten (UMSCHALT, STRG oder ALT).

  • Dem numerischen Ziffernblock und den normalen Zifferntasten.

Die Ereignisse KeyDown und KeyUp treten unter den folgenden Umständen nicht auf:

  • Der Benutzer drückt die EINGABETASTE in einem Formular, das eine Befehlsschaltfläche enthält, deren Default-Eigenschaft auf True gesetzt wurde.

  • Der Benutzer drückt die ESC-TASTE in einem Formular, das eine Befehlsschaltfläche enthält, deren Cancel-Eigenschaft auf True gesetzt wurde.

Die Ereignisse KeyDown und KeyPress treten ein, wenn Sie eine ANSI-Taste senden oder drücken. Das KeyUp-Ereignis tritt nach einem beliebigen Ereignis für ein Steuerelement ein, das durch das Drücken oder Senden der Taste ausgelöst wurde. Wenn durch einen Tastenanschlag der Fokus von einem Steuerelement an ein anderes weitergegeben wird, tritt das KeyDown-Ereignis für das erste Steuerelement ein, während die Ereignisse KeyPress und KeyUp für das zweite Steuerelement eintreten.

Die Reihenfolge der tastaturbezogenen Ereignisse ist:

  1. KeyDown

  2. KeyPress

  3. KeyUp

Anmerkung   Die Ereignisse KeyDown und KeyUp können sich nur auf ein Formular und auf Steuerelemente in einem Formular beziehen. Wenn Sie ANSI-Zeichen interpretieren oder das zu der gedrückten Taste gehörende ANSI-Zeichen ermitteln möchten, verwenden Sie das KeyPress-Ereignis.