Ejemplos de Excel VBA: ejemplos de eventos introductorios

Ejemplos de Excel VBA: ejemplos de eventos introductorios

Si está tratando de comprender bien Excel VBA , probablemente podría beneficiarse de algunos ejemplos para desarrollar esa destreza visual básica. Aquí, encontrará algunos ejemplos de Excel VBA para que pueda familiarizarse con este negocio de manejo de eventos.

Ejemplo de Excel VBA: el evento Open para un libro

Uno de los eventos de Excel VBA más utilizados es el evento Workbook Open. Suponga que tiene un libro de trabajo que usa todos los días. El procedimiento Workbook_Open en este ejemplo se ejecuta cada vez que se abre el libro. El procedimiento verifica el día de la semana; si es viernes, el código muestra un mensaje recordatorio para usted.

Para crear el procedimiento de Excel VBA que se ejecuta cada vez que se produce el evento Workbook Open, siga estos pasos:

Abra el libro de Excel.
Cualquier libro de Excel servirá.

Presione Alt + F11 para activar el VBE.

Busque el libro de trabajo en la ventana Proyecto.

Haga doble clic en el nombre del proyecto para mostrar sus elementos, si es necesario.

Haga doble clic en el elemento ThisWorkbook.
El VBE muestra una ventana de código vacía para el objeto ThisWorkbook.

En la ventana Código, seleccione Libro de trabajo en la lista desplegable Objeto (izquierda).
El VBE ingresa las declaraciones inicial y final para un procedimiento Workbook_Open.

Ingrese las siguientes declaraciones, de modo que el procedimiento de evento completo se vea así:

Private Sub Workbook_Open ()
  Dim Msg como cadena
  Si Weekday (Now) = 6 entonces
    Msg = "Hoy es viernes. No te olvides de"
    Msg = Msg & "enviar el informe TPS!"
    MsgBox Msg
  Terminara si
End Sub

La ventana Código debería verse así.

Ejemplos de Excel VBA: ejemplos de eventos introductorios

Este procedimiento de controlador de eventos se ejecuta cuando se abre el libro de trabajo.

Workbook_Open se ejecuta automáticamente cada vez que se abre el libro. Utiliza la función WeekDay de VBA para determinar el día de la semana. Si es viernes (día 6), un cuadro de mensaje le recuerda al usuario que envíe un informe. Si no es viernes, no pasa nada.

Si hoy no es viernes, es posible que tenga dificultades para probar este procedimiento. Puede cambiar el 6 para que se corresponda con el número de día real de hoy.

Y, por supuesto, puede modificar este procedimiento como desee. Por ejemplo, la siguiente versión muestra un mensaje cada vez que se abre el libro. Esto se vuelve molesto después de un tiempo.

Un procedimiento Workbook_Open puede hacer casi cualquier cosa. Estos controladores de eventos se utilizan a menudo para lo siguiente:

  • Mostrar mensajes de bienvenida (como en el genial libro de trabajo de Frank)
  • Abrir otros libros de trabajo
  • Activar una hoja de trabajo en particular en el libro de trabajo
  • Configurar menús contextuales personalizados

Aquí hay un ejemplo final de Excel VBA de un procedimiento Workbook_Open que usa las funciones GetSetting y SaveSetting para realizar un seguimiento de cuántas veces se ha abierto el libro. La función SaveSetting escribe un valor en el registro de Windows y la función GetSetting recupera ese valor (consulte el sistema de ayuda para obtener más detalles). El siguiente ejemplo de Excel VBA recupera el recuento del registro, lo incrementa y luego lo vuelve a guardar en el registro. También le dice al usuario el valor de Cnt que corresponde al número de veces que se ha abierto el libro.

Private Sub Workbook_Open ()
  Dim Cnt tan largo
  Cnt = GetSetting ("MyApp", "Configuración", "Abrir", 0)
  Cnt = Cnt + 1
  Guardar Configuración de "MyApp", "Configuración", "Abrir", Cnt
  MsgBox "Este libro se ha abierto" & Cnt & "times".
End Sub

Ejemplos de Excel VBA: ejemplos de eventos introductorios

Usar un controlador de eventos Workbook_Open para realizar un seguimiento de cuántas veces se ha abierto un libro.

Ejemplo de Excel VBA: el evento BeforeClose para un libro

Aquí hay un ejemplo del procedimiento de controlador de eventos Excel VBA Workbook_BeforeClose, que se ejecuta automáticamente inmediatamente antes de que se cierre el libro. Este procedimiento se encuentra en la ventana Código para un objeto ThisWorkbook:

Private Sub Workbook_BeforeClose (Cancelar como booleano)
  Dim Msg como cadena
  Dim Ans As Long
  Dim FName como cadena
  Msg = "¿Le gustaría hacer una copia de seguridad de este archivo?"
  Ans = MsgBox (Msg, vbYesNo)
  Si Ans = vbYes Entonces
    FName = "F: \ BACKUP \" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Terminara si
End Sub

This routine uses a message box to ask the user whether he would like to make a backup copy of the workbook. If the answer is yes, the code uses the SaveCopyAs method to save a backup copy of the file on drive F. If you adapt this procedure for your own use, you need to change the drive and path.

Excel programmers often use a Workbook_BeforeClose procedure to clean up after themselves. For example, if you use a Workbook_Open procedure to change some settings when you open a workbook (hiding the status bar, for example), it’s only appropriate that you return the settings to their original state when you close the workbook. You can perform this electronic housekeeping with a Workbook_BeforeClose procedure.

Cuando utilice el evento Workbook_BeforeClose, tenga esto en cuenta: si cierra Excel y se ha modificado algún archivo abierto desde la última vez que lo guardó, Excel muestra su cuadro de mensaje habitual "¿Desea guardar sus cambios". Hacer clic en el botón Cancelar cancela todo el proceso de cierre. Pero el evento Workbook_BeforeClose se habrá ejecutado de todos modos.

Ejemplo de Excel VBA: el evento BeforeSave para un libro

El evento BeforeSave, como su nombre lo indica, se activa antes de que se guarde un libro. Este evento ocurre cuando elige Archivo → Guardar o Archivo → Guardar como.

El siguiente procedimiento, que se coloca en la ventana Código para un objeto ThisWorkbook, demuestra el evento BeforeSave. La rutina actualiza el valor en una celda (celda A1 en Sheet1) cada vez que se guarda el libro. En otras palabras, la celda A1 sirve como contador para realizar un seguimiento del número de veces que se guardó el archivo.

Libro secundario privado_BeforeSave (ByVal SaveAsUI _
  Como booleano, cancelar como booleano)
  Contador de atenuación como rango
  Establecer contador = Hojas ("Hoja1"). Rango ("A1")
  Counter.Value = Counter.Value + 1
End Sub

Observe que el procedimiento Workbook_BeforeSave tiene dos argumentos: SaveAsUI y Cancel. Para demostrar cómo funcionan estos argumentos, examine la siguiente macro, que se ejecuta antes de guardar el libro. Este procedimiento intenta evitar que el usuario guarde el libro con un nombre diferente. Si el usuario elige Archivo → Guardar como, el argumento SaveAsUI es True.

Cuando se ejecuta el código, comprueba el valor SaveAsUI. Si esta variable es Verdadero, el procedimiento muestra un mensaje y establece Cancelar en Verdadero, lo que cancela la operación Guardar.

Libro secundario privado_BeforeSave (ByVal SaveAsUI _
  Como booleano, cancelar como booleano)
  Si SaveAsUI entonces
    MsgBox "¡No puede guardar una copia de este libro!"
  Cancelar = Verdadero
  Terminara si
End Sub

Tenga en cuenta que este procedimiento realmente no evitará que nadie guarde una copia con un nombre diferente. Si alguien realmente quiere hacerlo, puede abrir el libro con las macros deshabilitadas. Cuando las macros están deshabilitadas, los procedimientos del controlador de eventos también están deshabilitados, lo que tiene sentido porque, después de todo, son macros.


Hoja inteligente 9.1.1

Hoja inteligente 9.1.1

Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.

Compartirpunto

Compartirpunto

SharePoint es un sistema de colaboración basado en web que utiliza una variedad de aplicaciones de flujo de trabajo, bases de datos de "listas" y otros componentes web, así como funciones de seguridad para dar control a los grupos empresariales que trabajan juntos.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar es una aplicación de visualización de calendario en su teléfono, que le ayuda a ver rápidamente la fecha lunisolar en su teléfono, organizando así su importante trabajo.

Outlook 2021

Outlook 2021

Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.

Haga clic arriba

Haga clic arriba

ClickUp es una de las plataformas de productividad mejor calificadas para cualquier empresa. Grandes empresas como Google, Booking.com, San Diego Padres y Uber utilizan ClickUp para aumentar la productividad en el lugar de trabajo.

Visor de PDF-XChange 2.5.322.10

Visor de PDF-XChange 2.5.322.10

PDF se ha convertido en un formato de uso común para leer, crear y enviar documentos de texto. A su vez, se ha producido un aumento en el número de programas utilizados para este tipo de documentación. PDF-XChange Viewer se encuentra entre un número creciente de visores de PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice ofrece un conjunto completo de aplicaciones de Office que rivalizan con Microsoft 365, especialmente en Excel, PowerPoint y Word. Le permite gestionar sus proyectos de forma más eficaz y admite varios formatos de archivo.

Descargar iTaxviewer 1.8.7

Descargar iTaxviewer 1.8.7

El software iTaxViewer es el software de lectura de archivos XML más popular en la actualidad. Este software es una aplicación de lectura de declaraciones electrónicas de impuestos en formato XML de la Dirección General de Tributación.

Lector de PDF Nitro

Lector de PDF Nitro

Nitro PDF Reader es un práctico editor de PDF que cubre todas las tareas básicas que la mayoría de las personas realizan todos los días con documentos PDF.

Lector Foxit 12

Lector Foxit 12

Foxit Reader es principalmente un lector de PDF y también le permite crear archivos PDF, firmarlos, editarlos y agregar anotaciones. Funciona en sistemas operativos, existen complementos para varios programas del paquete Microsoft Office.