Ejecutar una macro

Existen varias maneras de ejecutar una macro en Microsoft Excel. Una macro es una acción o serie de acciones que permiten automatizar tareas. Las macros se graban en el lenguaje de programación de Visual Basic para Aplicaciones. Para ejecutar una macro, se hace clic en el comando Macros de la cinta. En función de cómo se haya asignado la ejecución de una macro, también se podría ejecutar la macro presionando una tecla de método abreviado combinada con CTRL, haciendo clic en un botón de la barra de herramientas de acceso rápido o en un grupo personalizado de la cinta, o en un área de un objeto, un gráfico o un control. Además, una macro se puede ejecutar automáticamente al abrirse un libro.

Nota: Cuando el nivel de seguridad de la macro en Excel se establece en Deshabilitar todas las macros sin notificación, Excel ejecuta únicamente aquellas macros que están firmadas digitalmente o almacenadas en una ubicación de confianza, como la carpeta de inicio de Excel del equipo. Si la macro que quiere ejecutar no está firmada digitalmente o no se encuentra en una ubicación de confianza, puede cambiar temporalmente el nivel de seguridad para habilitar todas las macros.

Antes de ejecutar macros

Tiene que modificar algunas opciones de configuración de Excel para poder ejecutar macros:

  1. Si la pestaña Programador no está disponible, muéstrela. Para más información, vea Mostrar la pestaña Programador.

  2. Para establecer el nivel de seguridad de manera que estén habilitadas temporalmente todas las macros, haga lo siguiente:

    1. En la ficha Programador, en el grupo Código, haga clic en Seguridad de macros.

      Pestaña Desarrollador de la cinta
    2. En la categoría Configuración de macros, en Configuración de macros, haga clic en Habilitar todas las macros (no recomendado; puede ejecutarse código posiblemente peligroso) y en Aceptar.

      Nota: Para ayudar a evitar que se ejecute código potencialmente peligroso, recomendamos que vuelva a cualquiera de las configuraciones que deshabilitan todas las macros cuando termine de trabajar con las macros.

  1. Abra el libro que contiene la macro.

  2. En la ficha Programador, en el grupo Código, haga clic en Macros.

    Pestaña Desarrollador de la cinta
  3. En el cuadro Nombre de la macro, haga clic en la macro que desea ejecutar.

  4. Siga uno de los procedimientos siguientes:

    • También puede presionar CTRL+F8 para ejecutar la macro. Para detener la macro, presione ESC.

    • Para ejecutar una macro desde un módulo de Microsoft Visual Basic para Aplicaciones (VBA), haga clic en Editar y, en el menú Ejecutar, haga clic en Ejecutar Sub/UserForm o presione F5.

  1. En el grupo Código de la pestaña Programado, haga clic en Macros.

    Pestaña Desarrollador de la cinta
  2. En el cuadro Nombre de la macro, haga clic en la macro a la que quiere asignar una tecla de método abreviado combinada con CTRL.

  3. Haga clic en Opciones.

    Aparecerá el cuadro de diálogo Opciones de la macro.

  4. En el cuadro Tecla de método abreviado, escriba cualquier letra minúscula o mayúscula que quiera usar con la tecla Ctrl.

    Nota: La tecla de método abreviado reemplazará cualquier tecla de método abreviado equivalente predeterminada de Excel mientras esté abierto el libro que contiene la macro.

    Para obtener una lista de teclas de método abreviado combinadas con CTRL que ya están asignadas en Excel, vea el artículo Teclas de función y de método abreviado de Excel.

  5. Escriba una descripción de la macro en el cuadro Descripción.

  6. Haga clic en Aceptar para guardar los cambios y, a continuación, en Cancelar para cerrar el cuadro de diálogo Macro.

Para ejecutar una macro desde un botón de la barra de herramientas de acceso rápido, debe agregar primero el botón a la barra de herramientas. Para ello, vea Asignar una macro a un botón.

Puede crear un grupo personalizado que aparezca en una pestaña de la cinta y luego asignar una macro a un botón de ese grupo. Por ejemplo, puede agregar un grupo personalizado denominado "Mis macros" a la pestaña Programador y agregar una macro (que aparece como un botón) al nuevo grupo. Para ello, vea Asignar una macro a un botón.

Ejecutar una macro haciendo clic en un área de un objeto gráfico

Puede crear un área relevante en un gráfico en la que los usuarios pueden hacer clic para ejecutar una macro.

  1. En la hoja de cálculo, inserte un objeto gráfico, como una imagen, una imagen prediseñada, una forma o un gráfico SmartArt.

    Para obtener información sobre cómo insertar un objeto gráfico, vea Agregar, cambiar o eliminar formas.

  2. Para crear un área relevante en el objeto existente, haga clic en Insertar > Formas, seleccione la forma que quiere usar y dibújela en el objeto existente.

    Formas
  3. Haga clic con el botón derecho en el área relevante que ha creado y haga clic en Asignar Macro.

  4. Siga uno de los procedimientos siguientes:

    • Para asignar una macro al botón u objeto gráfico, haga doble clic en la macro o escriba el nombre de la misma en el cuadro Nombre de la macro.

    • Para grabar una nueva macro y asignarla al objeto gráfico seleccionado, haga clic en Grabar, escriba un nombre para la macro en el cuadro de diálogo Grabar macro y haga clic en Aceptar para comenzar a grabar la macro. Cuando termine de grabarla, haga clic en Detener grabación Imagen del botón en la ficha Programador del grupo Código.

      Sugerencia: También puede hacer clic en Detener grabación Imagen del botón en el lado izquierdo de la barra de estado.

    • Para modificar una macro existente, haga clic en el nombre de la macro, en el cuadro Nombre de la macro y, a continuación, haga clic en Modificar.

  5. Haga clic en Aceptar.

  6. En la hoja de cálculo, seleccione el área relevante. Se mostrarán las herramientas de dibujo y se agregará una pestaña Formato.

  7. En el grupo Estilos de forma de la pestaña Formato, haga clic en la flecha junto a Relleno de forma y en Sin relleno.

    Menú de opciones de color de Relleno de forma

  8. Haga clic en la flecha situada junto a Contorno de forma y, a continuación, haga clic en Sin contorno.

Si graba una macro y la guarda con el nombre Auto_abrir, la macro se ejecutará cada vez que se abra el libro que la contiene. Otra forma de ejecutar automáticamente una macro al abrir un libro es escribir un procedimiento de VBA en el evento Open del libro mediante el Editor de Visual Basic. El evento Open es un evento de libro integrado que ejecuta su código de macro cada vez que se abre el libro.

Crear una macro Auto_abrir

  1. Si desea guardar la macro con un libro determinado, abra primero ese libro.

  2. En la pestaña Programador, en el grupo Código, haga clic en Grabar macro.

  3. En el cuadro Nombre de la macro escriba Abrir_automáticamente.

  4. En la lista Guardar macro en, seleccione el libro donde desea almacenar la macro.

    Sugerencia: Si quiere que la macro esté disponible siempre que use Excel, seleccione Libro de macros personal. Cuando se selecciona Libro de macros personal, Excel crea un libro de macros personal oculto (Personal.xlsb), si aún no existe, y guarda la macro en este libro. En Windows Vista, este libro se guarda en la carpeta C:\Usuarios\nombre de usuario\AppData\Local\Microsoft\Excel\XLStart. Si no lo encuentra aquí, es posible que se haya guardado en la subcarpeta Roaming, en lugar de en Local. En Microsoft Windows XP, este libro se guarda en la carpeta C:\Documents and Settings\nombre de usuario\Datos de programa\Microsoft\Excel\XLStart. Los libros almacenados en la carpeta XLStart se abren automáticamente al iniciar Excel. Si desea que se ejecute automáticamente una macro del libro de macros personal en otro libro, también debe guardar ese libro en la carpeta XLStart, de forma que ambos libros se abran cuando se inicie Excel.

  5. Haga clic en Aceptar y después realice las acciones que desea grabar.

  6. En la pestaña Programador, en el grupo Código, haga clic en Detener grabación Imagen del botón .

    Sugerencia: También puede hacer clic en Detener grabación en el lado izquierdo de la barra de estado.

    Botón Detener grabación en la barra de estado

Notas: 

  • Si en el paso 6 eligió guardar la macro en Este libro o en Libro nuevo, guarde o mueva el libro a una de las carpetas XLStart.

  • La grabación de una macro Auto_abrir tiene las limitaciones siguientes:

    • Si el libro en donde se guarda la macro Auto_abrir ya contiene un procedimiento de VBA en su evento Open, el procedimiento de VBA del evento Open invalidará todas las acciones contenidas en la macro Auto_abrir.

    • Las macros Auto_abrir se omiten cuando se abren libros mediante programación utilizando el método Open.

    • Una macro Auto_abrir se ejecuta antes de que se abra cualquier otro libro. Por lo tanto, si graba acciones que desea que realice Excel en el libro predeterminado Libro1 o en un libro cargado desde la carpeta XLStart, la macro Auto_abrir producirá un error cuando reinicie Excel porque la macro se ejecuta antes de abrir los libros de inicio y el predeterminado.

      Si encuentra estas limitaciones, en vez de grabar una macro Auto_abrir, debe crear un procedimiento de VBA para el evento Open como se describe en la sección siguiente de este artículo.

  • Si desea iniciar Excel sin ejecutar una macro Auto_abrir, mantenga presionada la tecla MAYÚS al abrir el programa.

Crear un procedimiento de VBA para el evento Open de un libro

En el ejemplo siguiente se usa el evento Open para ejecutar una macro al abrir el libro.

  1. Guarde y cierre todos los libros abiertos.

  2. Abra el libro donde desea agregar la macro o cree un nuevo libro.

  3. En la pestaña Programador, en el grupo Código, haga clic en Visual Basic.

  4. En la ventana Explorador de proyectos, haga clic con el botón secundario en el objeto ThisWorkbook y, a continuación, haga clic en Ver código.

    Sugerencia: Si la ventana Explorador de proyectos no está visible, en el menú Ver, haga clic en Explorador de proyectos.

  5. En la lista Objeto situada encima de la ventana Código, seleccione Libro.

    Así se crea automáticamente un procedimiento vacío para el evento Open, como el siguiente:

    Private Sub Workbook_Open()

    End Sub

  6. Agregue al procedimiento las líneas de código siguientes:

    Private Sub Workbook_Open()
    MsgBox Date
    Worksheets("Sheet1").Range("A1").Value = Date
    End Sub

  7. Cambie a Excel y guarde el libro como libro habilitado para macros (.xlsm).

  8. Cierre y vuelva a abrir el libro. Al abrir de nuevo el libro, Excel ejecuta el procedimiento Private Sub Workbook_Open, que muestra la fecha actual en un cuadro de mensaje.

  9. Haga clic en Aceptar en el cuadro de mensaje.

    Nota: Como resultado de ejecutar el procedimiento Workbook_Open, la celda A1 de la Hoja1 también contiene la fecha.

¿Necesita más ayuda?

Siempre puede preguntar a un experto de Excel Tech Community, obtener soporte técnico en la Comunidad de respuestas o sugerir una nueva característica o mejora en UserVoice de Excel.

Principio de página

Vea también

Ejecutar una macro automáticamente al abrir un libro 

Automatizar tareas con la grabadora de macros

Grabar una macro para abrir libros específicos al iniciar Excel

Crear y guardar todas las macros en un único libro

Guardar una macro

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×