Compartir a través de


Eventos KeyDown, KeyUp

Ocurren en secuencia cuando un usuario presiona y suelta una tecla. KeyDown ocurre cuando el usuario presiona una tecla. KeyUp ocurre cuando el usuario suelta una tecla.

Sintaxis

Objeto Private Sub_KeyDown( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)
Objeto Private Sub_KeyUp( ByValKeyCodeAs MSForms.ReturnInteger, ByValShiftAs fmShiftState)

La sintaxis de los eventos KeyDown y KeyUp consta de las partes siguientes:

Parte Descripción
object Obligatorio. Un nombre de objeto válido.
KeyCode Obligatorio. Un entero que representa el código de la tecla que se presionó o soltó.
Shift Obligatorio. El estado de MAYÚS, CTRL y ALT.

Configuración

Los valores de configuración de Shift son:

Constante Valor Descripción
fmShiftMask 1 Se presionó la tecla MAYÚS.
fmCtrlMask 2 Se presionó la tecla CTRL.
fmAltMask 4 Se presionó la tecla ALT.

Observaciones

El evento KeyDown ocurre cuando el usuario presiona una tecla en un formulario que se está ejecutando mientras que ese formulario o uno de sus controles tienen el foco. Los eventos KeyDown y KeyPress se alternan repetidamente hasta que el usuario suelta la tecla, momento en el que ocurre el evento KeyUp. El formulario o control que tiene el foco recibe todas las pulsaciones de teclas. Un formulario solamente puede tener el foco si no dispone de controles o si todos sus controles visibles están deshabilitados.

Estos eventos también se producen si se envía una pulsación de tecla a un formulario o control mediante la acción SendKeys en una macro o la instrucción SendKeys en Visual Basic.

Generalmente, los eventos KeyDown y KeyUp se usan para reconocer o diferenciar entre:

  • Teclas de carácter ampliados, como teclas de función.

  • Teclas de navegación como Inicio, Fin, Re Pág, Av Pág, flecha arriba, flecha abajo, flecha derecha, flecha izquierda y TAB.

  • Combinaciones de teclas y modificadores de teclado estándar (Mayús, CTRL o ALT).

  • El teclado numérico y las teclas de números del teclado.

Los eventos KeyDown y KeyUp no se producen en las siguientes circunstancias:

  • El usuario presiona Entrar en un formulario con un botón de comando cuya propiedad Default está establecida en True.

  • El usuario presiona Esc en un formulario con un botón de comando cuya propiedad Cancel está establecida en True.

Los eventos KeyDown y KeyPress ocurren cuando se presiona o se envía una tecla ANSI. El evento KeyUp ocurre después de cualquier evento para un control causado al presionar o enviar la tecla. Si una pulsación de tecla provoca que el foco pase de un control a otro, el evento KeyDown ocurre para el primer control, mientras que los eventos KeyPress y KeyUp ocurren para el segundo control.

La secuencia de eventos relativos al teclado es:

  1. KeyDown
  2. KeyPress
  3. KeyUp

Nota:

[!NOTA] Los eventos KeyDown y KeyUp se aplican únicamente a formularios y controles de un formulario. Para interpretar caracteres ANSI o buscar el carácter ANSI que se corresponde con la tecla presionada, use el evento KeyPress.

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.