Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

KeyCode en VBA

| 1 comentario

El argumento keycode identifica una clave y la asocia con el valor ASCII o mediante la constante del keycode. Los keycode son los mismos que los de los códigos ASCII de la mayúscula de la letra. Así que, por ejemplos, el keycode para  B y b es el valor devuelto por B.
Cabe resaltar que el número 1 presionado en el teclado númerico y el teclado normal indican claves diferentes a pesar de que ambas generen el mismo símbolo, es decir, “1”.

Para determinar si el formulario en mayúsculas o minúsculas ha sido presionado se necesita utilizar el argumento Shift. El número de keycode tanto de teclas como para signos de puntuación son los mismos que el código ASCII del número en la clave.
Así que, por ejemplo, la clave para ambos 1 y ! es el valor devuelto por Asc("1”).

KeyDown y KeyUp

Otro de los eventos más utilizados son KeyDown y KeyUp, con ellos se puede identificar la mayoría de las teclas de control en un teclado estándar. Esto incluye las teclas de función (F1-F16), las teclas de edición las teclas de navegación  y el teclado.  KeyDown esta asociado a presionar una tecla y KeyUp cuando se deja la tecla.
Un ejemplo del uso del KeyDown para determinar si se digito la tecla B:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyA Then MsgBox "Presionaste la tecla B”

End Sub

Estas claves se puede probar mediante el código clave constante o el equivalente valor ASCII.

Lista de constantes (Keycode en VBA)

Para saber el valor de las teclas, conocidas también como Key Code Constants, se puede presionar la tecla F2 en el  Editor de Visual Basic y buscar las constantes de KeyCode.

KeyCode en VBA
Los keycode en Visual Basic permiten tener control sobre todas las posibles situaciones, cada uno de ellos tiene su respectiva utilidad.

Ejemplos

Un último ejemplo sería el siguiente:
foto
foto

(Para mayor visualización de la imagen, hacer click en la misma)

Un comentario

  1. Si el foco está en un comandbutton, la tecla flecha a la derecha pasa al foco al comandbutton que está a la derecha. ¿Es posible, estando el foco en un comandbutton, usar la combinación control más flecha a la derecha para activar una macro?

Deja una respuesta

Los campos requeridos estan marcados con *.