Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das KeyDown-Ereignis tritt ein, wenn der Benutzer eine Taste drückt, während ein Formular oder ein Steuerelement den Fokus aufweist. Dieses Ereignis tritt auch ein, wenn Sie mithilfe der "Tastaturbefehle"-Aktion in einem Makro oder mit der SendKeys -Anweisung in Visual Basic Tastatureingaben an ein Formular oder Steuerelement senden.
Syntax
Ausdruck verwendet werden. KeyDown (KeyCode, Shift)
Ausdruck Eine Variable, die ein ComboBox-Objekt darstellt.
Parameter
| Name | Erforderlich/Optional | Datentyp | Beschreibung |
|---|---|---|---|
| KeyCode | Erforderlich | Integer | Ein Schlüsselcode, z. B. vbKeyF1 (F1-Taste) oder vbKeyHome (Home-Taste). Verwenden Sie zur Angabe von Tastencodes die im Objektkatalog aufgeführten systeminternen Konstanten. Sie können verhindern, dass ein Objekt einen Tastenanschlag empfängt, indem Sie KeyCode auf 0 setzen. |
| Shift | Erforderlich | Integer | Der Status der Tasten UMSCHALT, STRG und ALT zum Zeitpunkt des Ereignisses. Wenn Sie auf das Umschaltargument testen müssen, können Sie eine der folgenden systeminternen Konstanten als Bitmasken verwenden:
|
Hinweise
Das KeyDown-Ereignis gilt nur für Formulare und Steuerelemente in einem Formular, nicht für Steuerelemente in einem Bericht.
Wenn Sie ein Makro oder eine Ereignisprozedur ausführen möchten, wenn diese Ereignisse auftreten, legen Sie die OnKeyDown-Eigenschaft auf den Namen des Makros oder auf [Ereignisprozedur] fest.
Für beide Ereignisse gilt, dass alle Tastenanschläge von dem Objekt empfangen werden, das den Fokus hat. Ein Formular kann nur dann den Fokus haben, wenn es keine Steuerelemente enthält oder alle seine sichtbaren Steuerelemente deaktiviert sind.
Ein Formular empfängt darüber hinaus alle Tastaturereignisse, d. h. auch die, die für Steuerelemente eintreten, wenn Sie die KeyPreview-Eigenschaft des Formulars auf "Ja" festlegen. Mit dieser Eigenschafteneinstellung treten alle Tastaturereignisse zuerst für das Formular und dann für das Steuerelement mit dem Fokus ein. Sie können unabhängig davon, welches Steuerelement den Fokus hat, auf bestimmte auf dem Formular gedrückte Tasten reagieren. Sie können z. B. festlegen, dass mit der Tastenkombination STRG+X auf einem Formular immer dieselbe Aktion ausgeführt werden soll.
Wenn Sie eine Taste gedrückt halten, wechseln sich die Ereignisse KeyDown und KeyPress wiederholt ab (KeyDown, KeyPress, KeyDown, KeyPress usw.), bis Sie die Taste loslassen und dann das KeyUp-Ereignis eintritt.
Das KeyDown-Ereignis tritt zwar beim Drücken fast aller Tasten ein, wird jedoch in der Regel verwendet, um die folgenden Tasten bzw. Tastenkombinationen zu erkennen und zwischen diesen zu unterscheiden:
Tasten des erweiterten Zeichensatzes, wie z. B. Funktionstasten.
Navigationstasten, z. B. POS1, ENDE, BILDAUF, BILD-UNTEN, NACH-OBEN, NACH-UNTEN, NACH-RECHTS-PFEIL, NACH-LINKS-TASTE und TAB-TASTE.
Tastenkombinationen und Standard-Tastaturmodifizierer (UMSCHALT-, STRG- oder ALT-Tasten).
Die Zehnertastatur und die Zahlentasten der Tastatur.
Das KeyDown-Ereignis tritt nicht ein, wenn Sie Folgendes drücken:
Die Eingabetaste, wenn das Formular eine Befehlsschaltfläche enthält, für die die Standard-Eigenschaft auf Ja festgelegt ist.
Die Esc-Taste, wenn das Formular eine Befehlsschaltfläche enthält, für die die Eigenschaft Abbrechen auf Ja festgelegt ist.
Das KeyDown-Ereignis tritt ein, wenn Sie ein ANSI-Zeichen drücken oder senden. Das KeyUp-Ereignis tritt nach jedem Ereignis für ein Steuerelement ein, das durch das Drücken oder Senden einer Taste ausgelöst wurde. Wenn ein Tastenanschlag bewirkt, dass der Fokus von einem Steuerelement an ein anderes abgegeben wird, tritt für das erste Steuerelement das KeyDown -Ereignis auf, während für das zweite Steuerelement die Ereignisse KeyPress und KeyUp auftreten.
Verwenden Sie das KeyPress-Ereignis , um das ANSI-Zeichen zu ermitteln, das der gedrückten Taste entspricht.
Wenn durch das Drücken und Senden einer Taste ein gebundenes Dialogfeld angezeigt wird, treten das KeyDown- und das KeyPress-Ereignis ein, nicht aber das KeyUp-Ereignis.
Beispiel
Im folgenden Beispiel wird festgestellt, ob Sie die UMSCHALT-, STRG- oder ALT-TASTE gedrückt haben.
Fügen Sie zum Beispiel die folgende Ereignisprozedur zu einem Formular hinzu, das ein Textfeld mit dem Namen KeyHandler enthält.
Private Sub KeyHandler_KeyDown(KeyCode As Integer, _
Shift As Integer)
Dim intShiftDown As Integer, intAltDown As Integer
Dim intCtrlDown As Integer
' Use bit masks to determine which key was pressed.
intShiftDown = (Shift And acShiftMask) > 0
intAltDown = (Shift And acAltMask) > 0
intCtrlDown = (Shift And acCtrlMask) > 0
' Display message telling user which key was pressed.
If intShiftDown Then MsgBox "You pressed the Shift key."
If intAltDown Then MsgBox "You pressed the Alt key."
If intCtrlDown Then MsgBox "You pressed the Ctrl key."
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.