VBA – Ejecutar una macro al iniciar Excel

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 22, 2022

¿Necesita ejecutar una macro cuando se inicia Excel? Tiene dos opciones:

1. Crear un Sub (procedimiento) Workbook_Open()  dentro de ‘ThisWorkbook’.

2. Colocar un Sub Auto_Open() dentro de cualquier módulo.

Evento Workbook_Open

Cree un Sub titulado ‘Workbook_Open’ dentro de ‘ThisWorkbook’

Sub Workbook_Open()
    MsgBox "¡Este código se ejecutó al inicio de Excel!"
End Sub

Auto_Open

Usando el segundo método: Simplemente crea una subrutina llamada Auto_Open y coloca el código en ella, o llama a otra subrutina desde allí. Automáticamente su código se ejecuta cuando Excel se inicia.

Private Sub Auto_Open()
    MsgBox "¡Este código se ejecuta al iniciar Excel!"
End Sub

Crear y Nombrar una nueva Hoja de Trabajo cada vez que se abre Excel

El siguiente código funciona abriendo un libro de trabajo. Añade automáticamente una nueva hoja y la etiqueta con la fecha. También comprueba que la hoja no exista ya – para permitir la posibilidad de que se abra más de una vez al día.

Este código hace uso del evento Workbook Open y debe colocarse en el módulo del libro de trabajo bajo el evento «Open work Book». La función ‘Existe_Hoja’ debe ser colocada en un módulo y esto comprueba si la hoja existe o no:

Private Sub Workbook_Open()
    Dim NombreNuevaHoja As String
     
    NombreNuevaHoja = Format(Now(), "dd-mm-yy")
     
    If Existe_Hoja(NombreNuevaHoja) = False Then
        With ThisWorkbook
            Worksheets.Add().Name = NombreNuevaHoja
        End With
    End If
     
    Save
End Sub
Function Existe_Hoja(NombreHoja As String) As Boolean
    Dim hoja As Worksheet
     
    Existe_Hoja = False
     
    For Each hoja In ThisWorkbook.Worksheets
        If hoja.Name = NombreHoja Then
            Existe_Hoja = True
        End If
    Next
End Function

Para descargar el archivo .XLSM de este tutorial, haga clic aquí

Establecer la hoja por defecto cuando se abre el libro de trabajo

¿Quieres asegurarte de que una hoja se muestre siempre en primer lugar cuando se abre un libro de trabajo? Por ejemplo, cuando abres un libro de trabajo, la hoja 3 es siempre la hoja activa. A continuación le explicamos cómo hacerlo.

Puedes referirte a una hoja desde VBA por su nombre de programa (por ejemplo, Hoja3) o por su nombre de pestaña (por ejemplo, JanData). Es mejor utilizar el nombre del programa, porque si el nombre de la pestaña cambia, su código VBA que se refiere a un nombre de pestaña ya no funcionará. Sin embargo, si utiliza el nombre del programa, un usuario puede cambiar el nombre de la pestaña varias veces y su macro sigue funcionando.

Para asegurarse de que una determinada hoja se activa siempre cuando se abre un libro de trabajo, simplemente coloque el código sheet.activate en el sub workbook_open.

Este es un ejemplo que activa la hoja3 utilizando el nombre del programa cada vez que se abre un libro de trabajo.

Private Sub Workbook_Open()
    Hoja3.Activate
End Sub

Y esto lo hace utilizando el nombre de la pestaña:

Private Sub Workbook_Open()
    Sheets("nombreDeHoja").Activate
End Sub

Nota: Debe guardar y reiniciar Excel para que esto funcione.

Nota: Esto sólo funciona si las macros están activadas.

Nota: Ponga este código en la ventana de código para el objeto ThisWorkbook en el VBE.

Cargar un formulario cada vez que se abre el libro de trabajo

Si desea cargar un formulario o ejecutar algún código VBA cuando abra un libro de trabajo de Excel, coloque su código en la ventana de código de Thisworkbook y en el sub objeto Workbook_Open.

Desde su hoja de cálculo:

1. Pulsa ALT y F11 para abrir el editor VB

2. Haga doble clic en la palabra ThisWorkbook para abrir la ventana de código

3. Escriba el siguiente código en la ventana de código de ThisWorkbook

Private Sub Workbook_Open()
    formulario1.Show
End Sub

Nota: Reemplace Userform1 con el nombre de su formulario

4. Cierre Excel y vuelva a abrirlo.

Abrir formulario al cargar excel

 

Codificación VBA fácil

Deje de buscar código VBA en línea. Aprenda más sobre AutoMacro – Un generador de código VBA que permite a los principiantes codificar procedimientos desde cero con un mínimo conocimiento de codificación y con muchas características que ahorran tiempo a todos los usuarios alt text

Más información

<<Volver a los ejemplos de VBA

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples