logoImagina
iconCurso
Te recomendamos nuestro curso de Excel
Descubre el curso de Excel
Ir al curso
Tabla de contenido
¿Qué es una Macro de Excel?
¿Cómo se hace una macro en Excel?
¿Cómo Crear una Macro mediante la Grabadora de Excel?
¿Cómo Ejecutar una Macro en Excel?
Programar en Excel con VBA
¿Cómo Crear una Macro con VBA en Excel?
Objetos y propiedades de Excel
Modelo de objetos de Excel
Ejemplos de macros en Excel con Código Básico
¿Cómo convertirse en un Experto en Excel?
Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *

¿Cómo crear una Macro en Excel?

iconImage
Publicado 2024-03-01
Actualizado el 2024-05-22

En este tutorial en español, exploraremos el fascinante mundo de las macros de Excel y descubriremos cómo se hace una macro en Excel para simplificar tus tareas diarias. Aprenderás paso a paso cómo crear macros desde cero, grabar acciones y luego reproducirlas para automatizar procesos repetitivos. Además, te enseñaremos cómo personalizar y mejorar tus macros de Excel utilizando el lenguaje de programación VBA. Prepárate para descubrir una forma eficiente y efectiva de realizar tus tareas en Excel con las poderosas macros.

Si deseas llevar tus habilidades al siguiente nivel y explorar todo su potencial, te recomendamos considerar nuestro curso de Excel. Este curso te proporcionará conocimientos profundos sobre macros, fórmulas avanzadas y funciones especializadas, permitiéndote aprovechar al máximo esta poderosa herramienta.

¿Qué es una Macro de Excel?

Una macro en Excel es una serie de comandos y acciones que se almacenan como un solo comando para completar automáticamente una tarea específica. Las macros están escritas en un lenguaje de programación llamado Visual Basic for Applications (VBA), que permite a los usuarios de Excel automatizar prácticamente cualquier cosa dentro de un libro de Excel. Aunque pueda sonar complejo, Excel ofrece una manera sencilla de crear macros sin necesidad de conocer VBA, gracias a la grabadora de macros.

La grabadora de macros captura todo lo que haces en Excel y lo convierte en un script de VBA. Por ejemplo, si necesitas aplicar el mismo formato a diferentes conjuntos de datos de manera regular, puedes grabar tus acciones una vez y luego ejecutar la macro cada vez que necesites realizar esa tarea, con solo presionar un botón o utilizar un atajo de teclado.

Automatizar tareas repetitivas no solo ahorra tiempo, sino que también reduce el riesgo de cometer errores. Al dejar que la macro haga el trabajo por ti, puedes estar seguro de que cada paso se realizará de la misma manera cada vez, lo que garantiza consistencia y precisión en tus datos.

¿Cómo se hace una macro en Excel?

Las macros se escriben en un lenguaje de programación especial que es conocido como Visual Basic for Applications (VBA). Este lenguaje permite acceder a prácticamente todas las funcionalidades de Excel y con ello también ampliar la funcionalidad del programa.

Aunque en el caso de que no queramos hacerlo por código, podemos usar una herramienta que nos ofrece el propio Excel.

Mostrar la pestaña Programador

La pestaña Programador se utiliza en la creación de macros y de controles de formulario. Sin embargo, dicha pestaña se muestra de manera predeterminada en la Cinta de opciones de Excel y por lo tanto es importante aprender a mostrarla.

Para activar la pestaña Programador, debemos acudir a la configuración de la Cinta de opciones la cual se encuentra en el cuadro de diálogo Opciones y a continuación hacer clic derecho sobre ella.

Cinta de Opciones desde la barra de herramientas de Excel

Se nos abrirá un recuadro como este, y debemos activar la casilla donde está la opción de programador.

Vista de ventanas de Excel

Una vez hecho esto, pulsamos el botón de “Aceptar” y a continuación veremos la pestaña de Programador en la Cinta de opciones.

Pestaña programador en la barra de herramientas de Excel

Una vez activada la pestaña de Programador, veremos que los comandos se encuentran organizados en cuatro grupos.

  • Código: Los comandos necesarios para iniciar el Editor de Visual Basic, listar las macros disponibles para ejecutarlas o eliminarlas y crear una macro sin necesidad de saber programación VBA.
  • Complementos: Nos permite administrar y habilitar todo tipo de complementos como el caso del complemento Solver o las Herramientas para análisis.
  • Controles: Contiene comandos para agregar controles especiales, como los controles de formulario.
  • XML: Con estos comandos podremos importar datos de un archivo XML y trabajar con archivos XML.
Herramientas en la pestaña de Programador de Excel
Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *

¿Cómo Crear una Macro mediante la Grabadora de Excel?

El método más sencillo para crear una Macro es utilizar la grabadora de macros que guardará todos los pasos realizados para ejecutarlos posteriormente. La grabadora de macros almacena cada acción que se realiza en Excel, por eso es conveniente planear con antelación los pasos a seguir de manera que no se realicen acciones innecesarias mientras se realiza la grabación.

Paso 1: Iniciar la Grabación de la Macro

Para comenzar a grabar tu macro, primero necesitas acceder a la pestaña Desarrollador en la cinta de opciones de Excel. Si no ves esta pestaña, puedes habilitarla haciendo clic derecho en cualquier lugar de la cinta de opciones, seleccionando "Personalizar la cinta de opciones" y marcando la casilla "Desarrollador".

Opción Grabar Macro en Excel

Una vez en la pestaña Desarrollador, haz clic en "Grabar Macro" para abrir el cuadro de diálogo de grabación.

Cuadro de diálogo de Grabar Macro

En el cuadro de texto “Nombre de la macro” asigna un nombre significativo a tu macro para recordar fácilmente su propósito. También puedes asignar un atajo de teclado para ejecutar la macro con mayor rapidez. Es importante recordar que los nombres de las macros no pueden contener espacios ni caracteres especiales y deben comenzar con una letra.

La lista de opciones “Guardar macro en” permite seleccionar la ubicación donde se almacenará la macro:

  • Este libro. Guarda la macro en el libro actual.
  • Libro nuevo. La macro se guarda en un libro nuevo y puede ser ejecutada en cualquier libro creado durante la sesión actual de Excel.
  • Libro de macros personal. Esta opción permite utilizar la macro en cualquier momento sin importar el libro de Excel que se esté utilizando.

También podemos escribir una Descripción para la macro.

Paso 2: Realizar las Acciones a Automatizar

Con la grabación en marcha, es momento de realizar las acciones que deseas automatizar. Pueden ser tan simples como aplicar un formato específico a una selección de celdas, ordenar datos o incluso introducir fórmulas complejas. Cada clic y movimiento que realices se grabará, así que es vital realizar solo las acciones necesarias para la tarea que quieres automatizar.

Mientras grabas, piensa en los pasos como si estuvieras escribiendo un guion para que Excel lo siga. Si cometes un error, no te preocupes; podrás editar la macro más tarde utilizando el editor de VBA.

Paso 3: Detener la grabación de la Macro

Una vez que hayas completado todas las acciones deseadas, es momento de detener la grabación. Vuelve a la pestaña Desarrollador y haz clic en "Detener Grabación". ¡Y eso es todo! Has creado exitosamente una macro que puede realizar automáticamente las acciones que grabaste.

Recuerda, estas macros se guardan en el archivo de Excel actual por defecto. Si deseas utilizar tus macros en varios archivos, considera guardarlas en el Libro de Macros Personal, accesible desde el cuadro de diálogo de grabación de macro.

Este proceso de grabación de macros es solo el principio. A medida que te familiarices con las macros y el lenguaje VBA, podrás crear macros más complejas y potentes que pueden realizar tareas increíblemente sofisticadas, llevando tu productividad en Excel a nuevos niveles.

¿Cómo Ejecutar una Macro en Excel?

Ahora que ya sabes cómo grabar una macro, el siguiente paso es aprender a ejecutarla para que realice las tareas automatizadas cuando lo necesites. Existen diversas maneras de ejecutar macros en Excel, cada una adecuada a diferentes necesidades y preferencias. A continuación, te mostramos cómo ejecutar macros desde la pestaña Desarrollador, utilizando un botón de comando, y mediante un atajo de teclado.

Ejecutar Macro desde la pestaña Desarrollador

Para ejecutar una macro desde la pestaña Desarrollador, simplemente debes ir a esta pestaña y hacer clic en "Macros". Se abrirá un cuadro de diálogo donde verás una lista de todas las macros disponibles en el archivo actual. Selecciona la macro que deseas ejecutar y haz clic en "Ejecutar". Este método es directo y sencillo, ideal para cuando estás trabajando directamente en Excel y tienes acceso a la cinta de opciones.

Ejecutar Macro utilizando un Botón de Comando

Para una experiencia más interactiva y accesible, puedes asignar la ejecución de una macro a un botón de comando en tu hoja de Excel. Para hacerlo, primero debes insertar un botón utilizando los controles de formulario disponibles en la pestaña Desarrollador. Una vez insertado el botón en tu hoja, se te pedirá que selecciones la macro que deseas asignarle. Una vez asignada, cada vez que hagas clic en el botón, se ejecutará la macro. Este método es muy útil para macros que se utilizan frecuentemente, ya que brinda un acceso rápido y visual.

Ejecutar Macro mediante un Atajo de Teclado

Si prefieres la rapidez y eficiencia de los atajos de teclado, puedes ejecutar una macro asignándole una combinación de teclas. Cuando grabas una macro, Excel te ofrece la opción de asignarle un atajo de teclado. Si decidiste hacerlo, simplemente presionando la combinación de teclas asignada, la macro se ejecutará inmediatamente. Es importante elegir atajos de teclado que no interfieran con los atajos predeterminados de Excel para evitar conflictos. Este método es ideal para usuarios avanzados que prefieren mantener sus manos en el teclado y trabajar a gran velocidad.

Al dominar estas tres formas de ejecutar macros, mejorarás significativamente tu fluidez y eficiencia en Excel. Cada método tiene sus ventajas y puede ser más conveniente dependiendo del contexto en el que estés trabajando. Experimenta con ellos y elige el que mejor se adapte a tus necesidades.

Programar en Excel con VBA

VBA, Visual Basic for Applications, es un lenguaje de programación que permite extender las habilidades del programa para cubrir nuestros requerimientos. Para programar en Excel utilizamos VBA, que nos permite desarrollar nuevos algoritmos para analizar la información o para integrar a Excel con alguna otra aplicación, como Microsoft Access.

El primer concepto a entender en este lenguaje es que cada elemento de Excel es representado en VBA como un objeto. Por ejemplo, existe el objeto Workbook que representa a un libro de Excel. También existe el objeto Sheet que representa una hoja y el objeto Chart para un gráfico.

El segundo concepto importante es que cada uno de estos objetos tiene propiedades y métodos. Por ejemplo el objeto Workbook tiene propiedades como ActiveSheet (Hoja activa), Name (Nombre), ReadOnly (Solo Lectura), Saved (Guardado) y algunos de sus métodos son Save (Guardar), Close (Cerrar), PrintOut (Imprimir), Protect (Proteger), Unprotect (Desproteger).

Editor de Visual Basic

El Editor de Visual Basic VBE, es un programa relacionado a Excel porque nos permite escribir código VBA para crear las macros.

Para abrir el editor nos situamos en la pestaña de Programador y seleccionamos la opción de Visual Basic.

Opción Visual Basic de Excel

En la parte izquierda se muestra el Explorador de proyectos el cual muestra el proyecto actual y además las hojas pertenecientes a ese libro de Excel.

Explorador de proyectos y hoja de código de Visual Basic Excel

Dentro del Editor podemos observar una ventana llamada “Inmediato” en la parte inferior. Esta ventana permite introducir instrucciones y observar el resultado inmediato. Además, desde el código VBA podemos imprimir mensajes hacia la ventana Inmediato con el comando Debug.Print para poder depurar nuestro código.

El área más grande en blanco es donde escribiremos el código VBA. Es en esa ventana en donde escribimos y editamos los comandos VBA que dan forma a nuestras macros.

¿Cómo Crear una Macro con VBA en Excel?

Para crear una macro mediante código VBA, en primer lugar abrimos el editor de Visual Basic. Una vez dentro del Editor hacemos clic derecho sobre el título del proyecto y dentro del menú seleccionamos la opción “Insertar” y posteriormente “Módulo”.

Insertar módulo en Visual Basic

Se creará la sección Módulos y dentro de la misma se mostrará el módulo recién creado. Podemos saber que el módulo está abierto porque su nombre se muestra en el título entre corchetes.

Módulo abierto aparece en explorador de archivos

Nuestra primera subrutina va a consistir en copiar este comando dentro del editor VBA.

1Sub MiPrimeraMacro()MsgBox "Hola mundo"End Sub

Llegados a este punto vamos a ver las instrucciones mostradas:

Subrutinas VBA

La instrucción Sub es la abreviación de la palabra subrutina. Una subrutina es un conjunto de comandos que se ejecutarán uno por uno hasta llegar al final de la subrutina, que está especificada por la instrucción End Sub.

Las subrutinas nos ayudan a agrupar varias instrucciones para poder organizar adecuadamente nuestras instrucciones. Una subrutina siempre tiene un nombre el cual debe ser especificado justo después de la instrucción Sub y seguido por paréntesis.

Función MSGBOX en VBA

Esta función nos ayuda a mostrar una ventana de mensaje de manera que podamos estar comunicados con el usuario sobre cualquier error o advertencia que necesitamos darle a conocer.

Ejecutar Macro

Para probar nuestro código bastará con pulsar el botón Ejecutar que se encuentra dentro de la barra de herramientas.

Ejecutar código desde Visual Basic

En cuanto pulsemos el botón, se ejecutará y veremos el resultado en pantalla.

Por último para guardar la macro debemos guardar el archivo como Libro de Excel habilitado para macros, de lo contrario perderemos todo lo desarrollado en el módulo creado.

Objetos y propiedades de Excel

Cada uno de los objetos de Excel tiene propiedades y métodos. Las propiedades son las características del objeto y los métodos son las acciones que el objeto puede realizar.

Un objeto de Excel tiene propiedades. Por ejemplo una celda (Range) tiene las propiedades valor (Value) y dirección (Address) entre muchas otras. Estas propiedades describen mejor al objeto.

Los métodos son las actividades o acciones que el objeto puede realizar. Por ejemplo una celda (Range) tiene los métodos activar (Activate), calcular (Calculate), borrar (Clear) entre muchos más.

Para acceder a las propiedades y métodos de un objeto lo hacemos a través de una nomenclatura especial. Justo después del nombre del objeto colocamos un punto seguido de la propiedad o del método.

1Range("A1").Value = "Hola"

Así asignamos una cadena de texto al valor de la celda A1. Ahora bien, si queremos borrar ese valor que acabamos de colocar en la celda podemos utilizar el método Clear:

1Range("A1").Clear

En el caso de que queramos ver todas las propiedades y métodos de un objeto podemos usar el Editor de Visual Basic.

Sugerencias del Editor de Visual Basic

Cuando introducimos el punto después del nombre del objeto, nos listará las propiedades y métodos con iconos distintos. En la imagen de arriba los métodos son los que tienen el icono de color verde.

Modelo de objetos de Excel

Excel tiene un modelo de objetos el cual es una jerarquía de todos los objetos que podemos utilizar desde el lenguaje VBA. En la parte superior de la jerarquía se encuentra el objeto Application y todos los demás objetos estarán por debajo de él.

Para tener acceso a los objetos que están por debajo del objeto Application podemos utilizar el punto. El punto nos ayuda a navegar por la jerarquía hacia un nivel inferior.

Objetos por debajo a partir del punto

Por ejemplo, si deseamos poner en negritas el texto de la celda A1 debemos llegar al objeto Range el cual nos dará acceso a modificar la propiedad Bold de la siguiente manera:

1Application.ActiveWorkbook.ActiveSheet.Range("A1").Font.Bold = True

Existe una funcionalidad conocida como objetos predeterminados, la cual nos permite omitir la escritura de algunos objetos y aun así tener un código funcional. Por ejemplo, en la sentencia mostrada previamente podemos omitir el objeto Application y tener nuestro código funcionando correctamente:

1ActiveWorkbook.ActiveSheet.Range("A1").Font.Bold = True

Incluso podemos omitir los objetos ActiveWorkbook y ActiveSheet sabiendo que el código se ejecutará siempre sobre el libro activo y la hoja que esté activa al momento de la ejecución:

1Range("A1").Font.Bold = True

Objetos Workbook y Worksheet de Excel

El objeto Workbook representa un libro de Excel y el objeto Worksheet representa una hoja. Como sabemos, un libro de Excel puede tener más de una hoja lo cual significa que un objeto Workbook puede contener más de un objeto Worksheet.

Para poder establecer mejor la relación entre los objetos Workbook y Worksheet usamos las colecciones de objetos. De esta manera un objeto Workbook tiene asociada una colección de objetos Worksheets la cual contiene los objetos Worksheet que representan las hojas de ese libro de Excel. De la misma manera, el objeto Application tiene una colección de objetos Workbooks la cual incluirá todos los objetos Workbook de los libros de Excel que usemos en nuestro VBA.

Para abrir un libro de Excel en VBA podemos utilizar el método Open del objeto Workbooks de la siguiente manera:

1Application.Workbooks.Open Filename:="C:Libro1.xlsx"

Este comando abrirá el archivo ubicado en «C:Libro1.xlsx» y lo agregará a la colección de objetos Workbooks. De esta manera podemos abrir tantos archivos como sean necesarios y para cada uno de ellos se creará un objeto Workbook el cual será almacenado dentro de Workbooks.

Una vez que hemos abierto los archivos que necesitamos podremos hacer referencia a cada uno de ellos a través de la colección de objetos Workbooks de la siguiente manera:

1Application.Workbooks(1).Activate

El número dentro de los paréntesis indica el índice del objeto Workbook dentro de la colección de objetos Workbooks. De manera predeterminada el índice 1 será para el libro de Excel que contiene el código VBA y a partir de ahí la numeración será de acuerdo al orden en que hayamos abierto otros archivos. Si conocemos el nombre del libro podemos utilizarlo en lugar del índice y tener una instrucción como la siguiente:

1Application.Workbooks("Libro1.xlsx").Activate

De igual manera podemos acceder las hojas de cualquier libro a través de su colección de objetos Worksheets. Esta colección también puede ser accedida por el índice de cada una de las hojas del libro:

1Application.Workbooks(1).Worksheets(1).Range("A1").Value = "Hola"

Este comando accede a la hoja con el índice 1 y coloca el valor “Hola Mundo” en la celda A1. También podemos acceder a una hoja a través de su nombre en caso de que lo conozcamos:

1Application.Workbooks(1).Worksheets("Hoja1").Range("A1").Value = "Hola"

A través de la colección de objetos Worksheets podemos crear nuevas hojas en un libro con la siguiente instrucción:

1Worksheets.Add

No es necesario iniciar la instrucción anterior con el objeto Application ni el objeto Workbooks. Esta sintaxis indica que se agregará una nueva hoja al libro que esté activo en ese momento. Este es un método abreviado que podemos utilizar si estamos seguros de que el libro activo es el libro al que deseamos agregar una nueva hoja. De lo contrario, podemos especificar tota la ruta completa:

1Application.Workbooks("Libro1.xlsx").Worksheets.Add

Objeto Application de Excel

Es el objeto que está en el nivel más alto de la jerarquía del modelo de objetos de Excel. Además nos da acceso a opciones y configuraciones a nivel de la aplicación. Muchas de las opciones que podemos modificar con el objeto Application son las mismas que encontramos en la ficha Archivo dentro del cuadro de diálogo Opciones de Excel.

Ya que el objeto Application es el objeto principal dentro de VBA todos los demás objetos derivan de él. Es por ello que las instrucciones suelen empezar especificando el objeto Application:

1Application.ActiveSheet.Name = "Reporte de Ventas"

Sin embargo en la mayoría de los casos podemos omitir la escritura del objeto Application, ya que supone que todos los demás objetos provienen de él. De esta manera la siguiente instrucción también es válida.

1ActiveSheet.Name = "Reporte de Ventas"

El objeto Application tiene algunas colecciones que son de mucha utilidad como Sheets, Columns y Rows. La colección Sheets nos permite acceder a todas las hojas de un libro:

1Application.Sheets.Count

Es importante mencionar que la colección Sheets se referirá al libro de Excel que se encuentre activo en el momento de ejecutar esta instrucción. Las colecciones Columns y Rows nos permitirán acceder a las columnas y filas de la hoja activa.

1Application.Columns(5).SelectApplication.Rows(5).Select

El objeto Application tiene muchas propiedades, pero algunas de las más importantes son las siguientes:

  • ActiveWorkbook. Devuelve un objeto Workbook que representa el libro de Excel activo.
  • ActiveSheet. Devuelve un objeto Worksheet que representa a la hoja que esté actualmente seleccionada (activa).
  • ActiveCell. Devuelve un objeto Range que representa la celda activa dentro de la hoja activa en el libro de Excel activo.
  • ThisWorkbook. Esta propiedad devolverá un objeto Workbook que representará el libro que contiene la macro que está siendo ejecutada.

Ejemplos de macros en Excel con Código Básico

A continuación vamos a ver unos ejemplos de cómo realizar tareas básicas con macros.

Ejemplo 1: Hoja de trabajo con fecha y hora actual

Para escribir la fecha y la hora actual utilizamos el siguiente código:

1Sub escribirFechaYHora ()Range ("A1") = NowEnd Sub
Celda con la fecha y hora actual en Excel

Esto mostrará la fecha y hora en la primera celda, pero podemos cambiar Range(“A1”) para mostrarla en cualquier otra.

Ejemplo 2: Ejecutar una macro al abrir la hoja de cálculo

Hay casos donde la macro debe abrirse junto con la hoja de cálculo. En este caso basta con montar una macro con el parámetro Auto_Open () Con el siguiente código:

1Sub Auto_Open ()MsgBox "Para más información sobre Excel, visite [https://support.microsoft.com/es-es/excel?ui=es-es&rs=es-es&ad=es](https://support.microsoft.com/es-es/excel?ui=es-es&rs=es-es&ad=es) "End Sub

Ejemplo3: Macro que habla

Podemos crear una macro que nos lea el contenido de las celdas que le indiquemos:

1Sub ExcelFalando ()("A1: A5").End Sub

Utilizando dicho código, nos leerá el contenido desde la celda A1, hasta la A5.

¿Cómo convertirse en un Experto en Excel?

En este tutorial, has aprendido todo sobre la creación de macros en Excel paso a paso. Recuerda que las macros son una herramienta poderosa que puede ahorrarte tiempo y esfuerzo al automatizar tareas repetitivas. Experimenta con diferentes acciones para aprovechar al máximo Excel y mejorar tu productividad.

Si deseas profundizar tus conocimientos sobre Excel y seguir aprendiendo, te invitamos a consultar la página de nuestro curso de Excel. Allí encontrarás una amplia variedad de recursos, lecciones y ejercicios prácticos que te ayudarán a dominar aún más las habilidades de Excel. ¡Sigue aprendiendo y lleva tus habilidades en Excel al siguiente nivel!

Descubre la formación a tu medida
Rellena el formulario para obtener más información sobre los cursos.
Tamaño de la empresa *
Términos y condiciones *