Eventos en VBA

Los eventos en VBA nos ayudan a monitorear las acciones que realizan los usuarios en Excel de manera que podamos controlar la acción a tomar cuando el usuario hace algo específico como el activar una hoja o hacer clic en alguna celda.

Ejemplos de eventos en VBA

Algunos ejemplos de eventos en VBA son los siguientes:

  • WorkbookOpen: El usuario abre un libro de Excel.
  • WorkbookActivate: El usuario activa un libro de Excel.
  • SelectionChange: El usuario cambia la selección de celdas en una hoja.

Para descubrir los eventos que tiene un objeto es suficiente con abrir el Editor de Visual Basic y posteriormente el Examinador de objetos (F2). En el panel izquierdo se mostrarán los objetos y en el panel derecho las propiedades, métodos y eventos de dicho objeto. Podrás distinguir los eventos porque tienen un icono en forma de rayo (color amarillo):

Eventos en VBA

Un ejemplo de eventos en VBA

El ejemplo que crearemos en esta ocasión es para activar un cuadro de diálogo con el mensaje “Bienvenido a la Hoja 2” y que se mostrará cuando activemos la Hoja2 de nuestro libro. Para comenzar, debes seleccionar el objeto Hoja2 del panel izquierdo del Editor de Visual Basic y posteriormente seleccionar la opción Worksheet:

Crear un evento en VBA

Esto creará automáticamente la subrutina para el evento SelectionChange pero podemos fácilmente crear otro evento seleccionándolo de la lista de Procedimientos. Para este ejemplo crearé el evento Activate:

Evento Activate del objeto Worksheet

Una vez creada la subrutina para el evento Activate solamente insertaré el código para que se muestre el mensaje dentro del cuadro de diálogo:

Código para un evento en VBA

Ahora que hemos definido una acción asociada al evento Activate de la Hoja2, el mensaje se mostrará cada vez que actives la Hoja2.

Los eventos en VBA son de mucha utilidad porque nos ayudan a controlar el momento exacto en que deseamos ejecutar algún bloque de código al iniciarse alguna acción por el usuario.

Artículos relacionados
Objetos, propiedades y métodos en VBA