Cómo usar eventos en tiempo y eventos de pulsación de teclas en Excel 2016 VBA

Cómo usar eventos en tiempo y eventos de pulsación de teclas en Excel 2016 VBA

Hay dos tipos de eventos que puede usar en la programación de VBA para Excel 2016 que no están asociados con objetos: tiempo y pulsaciones de teclas. Debido a que el tiempo y las pulsaciones de teclas no están asociados con un objeto en particular, como un libro de trabajo o una hoja de trabajo, usted programa estos eventos en un módulo VBA normal.

El evento OnTime

El evento OnTime ocurre cuando ocurre una hora determinada del día. El siguiente ejemplo demuestra cómo hacer que Excel ejecute un procedimiento cuando ocurre el evento de las 3 pm. En este caso, una voz de robot le indica que se despierte, acompañada de un cuadro de mensaje:

Sub SetAlarm ()
  Application.OnTime 0.625, "DisplayAlarm"
End Sub
Alarma de pantalla secundaria ()
  Application.Speech.Speak ("Oye, despierta")
  MsgBox "¡Es hora de tu descanso vespertino!"
End Sub

En este ejemplo, se utiliza el método OnTime del objeto Application. Este método toma dos argumentos: la hora (0,625 o 3:00 pm) y el nombre del procedimiento Sub que se ejecutará cuando se produzca el evento de hora (DisplayAlarm).

Este procedimiento es bastante útil si tiende a estar tan absorto en su trabajo que se olvida de las reuniones y citas. Simplemente configure un evento OnTime para recordarlo.

A la mayoría de las personas les resulta difícil pensar en el tiempo en términos del sistema de numeración de Excel. Por lo tanto, es posible que desee utilizar la función VBA TimeValue para representar la hora. TimeValue convierte una cadena que parece una hora en un valor que Excel puede manejar. La siguiente declaración muestra una manera más fácil de programar un evento para las 3 pm:

Application.OnTime TimeValue ("3:00:00 pm"), "DisplayAlarm"

Si desea programar un evento en relación con la hora actual (por ejemplo, dentro de 20 minutos), puede usar una declaración como esta:

Application.OnTime Now + TimeValue ("00:20:00"), "DisplayAlarm"

También puede usar el método OnTime para ejecutar un procedimiento VBA en un día en particular. Debe asegurarse de que su computadora siga funcionando y de que el libro de trabajo con el procedimiento se mantenga abierto. La siguiente declaración ejecuta el procedimiento DisplayAlarm a las 5 pm del 31 de diciembre de 2016:

Application.OnTime DateValue ("31/12/2016 5:00 pm"), "DisplayAlarm"

Esta línea de código en particular podría ser útil para advertirle que debe irse a casa y prepararse para las festividades de Año Nuevo.

Aquí hay otro ejemplo que usa el evento OnTime. La ejecución de los procedimientos UpdateClock escribe la hora en la celda A1 y también programa otro evento cinco segundos después. Este evento vuelve a ejecutar el procedimiento UpdateClock. El efecto neto es que la celda A1 se actualiza con la hora actual cada cinco segundos. Para detener los eventos, ejecute el procedimiento StopClock (que cancela el evento). Tenga en cuenta que NextTick es una variable de nivel de módulo que almacena la hora del próximo evento.

Atenuar NextTick como fecha
Sub UpdateClock ()
'Actualiza la celda A1 con la hora actual
  ThisWorkbook.Sheets (1) .Range ("A1") = Hora
'Configure el próximo evento dentro de cinco segundos
  NextTick = Now + TimeValue ("00:00:05")
  Application.OnTime NextTick, "UpdateClock"
End Sub
Sub StopClock ()
'Cancela el evento OnTime (detiene el reloj)
  En caso de error, reanudar siguiente
  Application.OnTime NextTick, "UpdateClock",, False
End Sub

El evento OnTime persiste incluso después de cerrar el libro. En otras palabras, si cierra el libro sin ejecutar el procedimiento StopClock, el libro se volverá a abrir en cinco segundos (asumiendo que Excel todavía se está ejecutando). Para evitar esto, use un procedimiento de evento Workbook_BeforeClose que contenga la siguiente declaración:

Llamar StopClock

El método OnTime tiene dos argumentos adicionales. Si planea utilizar este método, debe consultar el sistema de ayuda para obtener detalles completos.

Si desea ver una aplicación bastante complicada, consulte esta aplicación de reloj analógico. La esfera del reloj es en realidad un gráfico y el gráfico se actualiza cada segundo para mostrar la hora del día. Inútil, pero divertido.

Cómo usar eventos en tiempo y eventos de pulsación de teclas en Excel 2016 VBA

Una aplicación de reloj analógico.

Eventos de pulsación de teclas

Mientras trabaja, Excel supervisa constantemente lo que escribe. Debido a esto, puede configurar las cosas para que una pulsación de tecla o una combinación de teclas ejecute un procedimiento.

Aquí hay un ejemplo que reasigna las teclas PgDn y PgUp:

Configuración secundaria_OnKey ()
  Application.OnKey "{PgDn}", "PgDn_Sub"
  Application.OnKey "{PgUp}", "PgUp_Sub"
End Sub
Sub PgDn_Sub ()
  En caso de error, reanudar siguiente
  ActiveCell.Offset (1, 0) .Activate
End Sub
Sub PgUp_Sub ()
  En caso de error, reanudar siguiente
  ActiveCell.Offset (-1, 0) .Activate
End Sub

Después de configurar los eventos de OnKey ejecutando el procedimiento Setup_OnKey, presionar PgDn lo mueve hacia abajo una fila. Al presionar Re Pág, avanza una fila.

Observe que los códigos de clave están entre llaves, no entre paréntesis. Para obtener una lista completa de los códigos del teclado, consulte el sistema de ayuda. Busque OnKey.

En este ejemplo, On Error Resume Next se utiliza para ignorar cualquier error que se genere. Por ejemplo, si la celda activa está en la primera fila, intentar subir una fila provoca un error que se puede ignorar con seguridad. Y si una hoja de gráfico está activa, no hay ninguna celda activa.

Al ejecutar la siguiente rutina, cancela los eventos de OnKey:

Sub Cancel_OnKey ()
  Application.OnKey "{PgDn}"
  Application.OnKey "{PgUp}"
End Sub

El uso de una cadena vacía como segundo argumento del método OnKey no cancela el evento OnKey. Más bien, hace que Excel simplemente ignore la pulsación de tecla. Por ejemplo, la siguiente declaración le dice a Excel que ignore Alt + F4. El signo de porcentaje representa la tecla Alt:

  Application.OnKey "% {F4}", ""

Aunque puede usar el método OnKey para asignar una tecla de método abreviado para ejecutar una macro, debe usar el cuadro de diálogo Opciones de macro para esta tarea.

Si cierra el libro que contiene el código y deja Excel abierto, el método OnKey no se restablecerá. Como consecuencia, presionar la tecla de método abreviado hará que Excel abra automáticamente el archivo con la macro. Para evitar que esto suceda, debe incluir código en su código de evento Workbook_BeforeClose para restablecer el evento OnKey.


Cómo programar una reunión de Skype

Cómo programar una reunión de Skype

Aprenda a programar reuniones efectivas en Skype Empresarial desde Outlook o la aplicación de Skype. Siga nuestros sencillos pasos para una mejor colaboración.

Cómo usar Pegado especial en Excel 2016

Cómo usar Pegado especial en Excel 2016

Aprende a usar la función de Pegado Especial en Excel 2016 para optimizar la forma en que insertas datos en tus hojas de cálculo. Controla qué información se pega y realiza operaciones matemáticas simples con facilidad.

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Descubre las funciones de Excel para convertir entre binario, octal, decimal y hexadecimal con esta tabla informativa y consejos útiles para optimizar tu trabajo.

Instalar y activar un complemento de Power Query de Excel

Instalar y activar un complemento de Power Query de Excel

Completa guía sobre cómo instalar y activar el complemento de Power Query en Excel 2010 y 2013, y su uso en Excel 2016. Aprende a gestionar datos de manera efectiva en Excel.

Access 2019: Cómo editar y modificar una base de datos de Access

Access 2019: Cómo editar y modificar una base de datos de Access

Aprende a modificar y editar bases de datos en Access 2019, incluyendo cómo nombrar campos, agregar y eliminar campos, y definir tipos de datos. ¡Optimiza tu trabajo con Access!

Cómo usar el comando Ir a en Word 2016

Cómo usar el comando Ir a en Word 2016

El comando Ir a en Word 2016 es una herramienta poderosa para navegar rápidamente a una página específica o a elementos dentro del documento. Aprende a optimizar tu flujo de trabajo con este práctico comando.

Cómo resaltar fechas de fin de semana en Excel

Cómo resaltar fechas de fin de semana en Excel

Aprende cómo resaltar fechas de fin de semana en Excel utilizando formato condicional para mejorar la gestión de tus datos de programación.

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Aprenda a insertar un hipervínculo "mailto" en Excel 2010 para crear correos electrónicos de manera simple y eficiente.

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Aprenda a utilizar las opciones de pegado y Pegado especial en Word 2007 para manejar eficazmente bloques de texto. Optimizando su formato y presentación.

Cómo modificar un gráfico SmartArt en PowerPoint

Cómo modificar un gráfico SmartArt en PowerPoint

Descubre cómo modificar un gráfico SmartArt en PowerPoint incluyendo cambios de diseño, estructura y texto. Mejora tus presentaciones con estos consejos SEO.