Curso Excel VBA y Macros – Cap. 42 – OnKey para ejecutar macros con combinación de teclas

<<CURSO COMPLETO EN YOUTUBE>>

En este video tutorial seguiremos con el tema de eventos en Excel. Ya vimos que los eventos son acciones que les suceden a los objetos de Libro (Workbook) u Hoja (Worksheet), como son: al abrir un archivo, al cerrar un archivo, al seleccionar celdas, al modificar celdas, etc.

En este video tutorial veremos el segundo Evento no asociado a objetos, el cual es OnKey. Éste evento nos ayudará a ejecutar macros utilizando pulsaciones de teclas, ya sea al presionar alguna tecla o una combinación de ellas. Este evento también se considera Método.

Este es el quinto video tutorial de una serie de videos relacionados con los eventos:

  • Eventos de Libro (Workbook).
  • Eventos de Hoja (Worksheet).
  • Eventos de Formulario (UserForm).
  • Eventos no asociados a objetos.
    • OnTime.
    • OnKey.
  • Eventos de Aplicación (Application).

Ver video Capítulo 42 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Evento OnKey para ejecutar macros usando teclado

Al poder asignar la ejecución de macros al presionar ciertas teclas, tenemos la oportunidad de personalizar nuestros archivos con funcionalidades interesantes. Veremos 3 ejemplos usando el evento OnKey.

  • Asignar macro a una tecla.
  • Asignar macro a una combinación de teclas.
  • Deshabilitar combinaciones conocidas en Excel.

Sintaxis

En la siguiente línea vemos cómo podemos usar el evento ó método OnKey.

Application. OnKey (Clave, procedimiento)

Dónde:

ARGUMENTO

DESCRIPCIÓN

Key

La clave que hace referencia a la tecla o teclas que se presionarán.

Procedimiento

El texto que indica el nombre de la macro que se ejecutará. Si ingresamos solo “” (vacío), no sucede nada cuando presionamos una tecla. Si el argumento Procedimiento se omite, Key vuelve a su estado normal en Excel. Esto es útil si acaso reemplazamos la acción de una combinación conocida en Excel.

Códigos de teclas para utilizar con OnKey

La siguiente tabla nos muestra los códigos que podemos usar si deseamos que se presiona alguna tecla especial.

TECLA

CÓDIGO

Retroceso

{BACKSPACE} or {BS}

Pause

{BREAK}

BloqMayús

{CAPSLOCK}

Limpiar

{CLEAR}

Suprimir

{DELETE} or {DEL}

Flecha abajo

{DOWN}

Fin

{END}

Enter

{ENTER}

Esc

{ ESCAPE} or {ESC}

Ayuda

{HELP}

Inicio

{HOME}

Insertart

{INSERT}

Fecha izquierda

{LEFT}

BloNum

{NUMLOCK}

AvPág

{PGDN}

RePág

{PGUP}

Intro

{RETURN}

Fecha derecha

{RIGHT}

SCROLL LOCK

{SCROLLLOCK}

Tabulador

{TAB}

Fecha arriba

{UP}

F1 hasta F15

{F1} hasta {F15

Los códigos anteriores los podremos combinar con las siguientes teclas especiales.

TECLA PARA COMBINAR

CÓDIGO

Shift

+ (signo de más)

Ctrl

^ (acento circunflejo)

Alt

% (signo de porcentaje)

Macro de prueba Pedir confirmación para borrar contenido de celda

Tenemos una macro de prueba que nos pide confirmación para borrar el contenido de una celda o un rango de celdas. Dicha macro la asignaremos al momento de presionar la tecla Suprimir. A continuación la macro:

Sub SUPR()
Dim Confirmacion As Integer

'Si la selección es un Rango
If VBA.TypeName(Selection) = "Range" Then
    Confirmacion = MsgBox("Desea borrar el contenido?", vbYesNo + vbQuestion)
    If Confirmacion = vbYes Then
        Selection.ClearContents
    Else
    End If
Else

Selection.Delete

End If

End Sub

Ejemplo 1. Asignar macro a la tecla Suprimir.

El siguiente código vba será para asignar la macro SUPR cuando se presione la tecla Suprimir.

Sub ActivarSUPR()

Application.OnKey "{DEL}", "SUPR"

End Sub

Y el siguiente código será para devolver el comportamiento normal a la tecla Suprimir, es decir, que no lance la macro al momento de presionarla.

Sub DesactivarSUPR()

Application.OnKey "{DEL}"

End Sub

Ejemplo 2. Asignar macro a combinación de teclas

La siguiente macro nos ayudará a asignar la ejecución de macros a combinaciones de teclas, ya sea usando la tecla Shift, Control, Alt o combinación de 3 teclas.

Sub CombinacionON()

Application.OnKey "+{RIGHT}", "ShiftDerecha"
Application.OnKey "^{ESC}", "ControlEscape"
Application.OnKey "%{RIGHT}", "AltDerecha"
Application.OnKey "^+{RIGHT}", "ControlShiftDerecha"

End Sub

Con la siguiente macro le devolveremos el comportamiento originar a las combinaciones de la macro anterior.

Sub CombinacionOFF()

Application.OnKey "+{RIGHT}"
Application.OnKey "^{ESC}"
Application.OnKey "%{RIGHT}"
Application.OnKey "^+{RIGHT}"

End Sub

Ejemplo 3. Prohibir la combinación Control + C

En la siguiente macro logramos deshabilitar la combinación de teclas Control + C que nos ayuda a copiar rangos u objetos.

imaginar que deseas proteger tu hoja. Podemos prohibir el uso de Control + C, además de prohibir el uso del clic derecho usando el evento BeforeDoubleClick.

Sub CopiarOFF()

'Application.OnKey "^{c}", "NoCopiar"
Application.OnKey "^{c}", ""

End Sub

Es importante tener una macro para restablecer el comportamiento de las combinaciones que actualmente tiene Excel. Como sugerencia podemos asignar la siguiente macro al evento BeforeClose del archivo.

Sub CopiarON()

Application.OnKey "^{c}"

End Sub

Descarga el archivo de ejemplo

042 – Evento OnKey para ejecutar macros con combinación de teclas.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

También te podría gustar...