Cómo grabar una macro en Excel

  • Compartir Este
Michael Brown

Tutorial paso a paso para principiantes para grabar, ver, ejecutar y guardar una macro. También aprenderá algunos mecanismos internos del funcionamiento de las macros en Excel.

Las macros son una forma estupenda de automatizar tareas repetitivas en Excel. Si te encuentras haciendo las mismas cosas una y otra vez, graba tus movimientos como una macro y asígnale un atajo de teclado. Y ahora, puedes hacer que todas las acciones grabadas se realicen automáticamente, ¡con una sola pulsación de tecla!

    Cómo grabar una macro en Excel

    Al igual que otras herramientas VBA, las macros de Excel residen en el directorio Desarrollador Así que lo primero que tienes que hacer es añadir la pestaña Desarrollador a la cinta de opciones de Excel.

    Para grabar una macro en Excel, sigue estos pasos:

    1. En el Desarrollador en la pestaña Código haga clic en el botón Grabar macro botón.

      Como alternativa, pulse el botón Grabar macro situado a la izquierda de la Estado bar:

      Si prefiere trabajar con el teclado en lugar de con el ratón, pulse la siguiente secuencia de teclas Alt , L , R (una a una, no todas las teclas a la vez).

    2. En el Grabar macro que aparece, configure los parámetros principales de su macro:
      • En el Macro nombre Intente que sea significativo y descriptivo, para que más adelante pueda encontrar rápidamente la macro en la lista.

        En los nombres de macro, puede utilizar letras, números y guiones bajos; el primer carácter debe ser una letra. Los espacios no están permitidos, por lo que debe mantener un nombre de una sola palabra comenzando cada parte con una letra mayúscula (por ejemplo. MiPrimerMacro ) o separar las palabras con guiones bajos (por ejemplo Mi_primera_Macro ).

      • En el Tecla de acceso directo escriba cualquier letra para asignar un atajo de teclado a la macro (opcional).

        Se admiten tanto mayúsculas como minúsculas, pero es aconsejable utilizar combinaciones de teclas en mayúsculas ( Ctrl + Mayús + letra ) porque los atajos de macro anulan cualquier atajo predeterminado de Excel mientras esté abierto el libro que contiene la macro. Por ejemplo, si asigna Ctrl + S a una macro, perderá la posibilidad de guardar sus archivos de Excel con un atajo. Si asigna Ctrl + Mayús + S, mantendrá la funciónatajo de guardado estándar.

      • Desde el Almacenar macro en elige dónde quieres guardar tu macro:
        • Cuaderno de trabajo de macros personales - almacena la macro en un libro de trabajo especial llamado Personal.xlsb Todas las macros almacenadas en este libro estarán disponibles siempre que utilices Excel.
        • Este cuaderno (por defecto) - la macro se almacenará en el libro de trabajo actual y estará disponible cuando vuelva a abrir el libro de trabajo o lo comparta con otros usuarios.
        • Nuevo cuaderno de ejercicios - crea un nuevo libro de trabajo y graba la macro en ese libro.
      • En el Descripción escriba una breve descripción de lo que hace la macro (opcional).

        Aunque este campo es opcional, le recomiendo que siempre proporcione una breve descripción. Cuando cree muchas macros diferentes, le ayudará a entender rápidamente lo que hace cada macro.

      • Haga clic en OK para iniciar la grabación de la macro.

    3. Realice las acciones que desea automatizar (consulte el ejemplo de macro de grabación).
    4. Cuando haya terminado, pulse el botón Detener grabación en el botón Desarrollador ficha:

      O el botón análogo del Estado bar:

    Ejemplo de grabación de una macro en Excel

    Para ver cómo funciona en la práctica, vamos a grabar una macro que aplique algún formato a las celdas seleccionadas. Para ello, haz lo siguiente:

    1. Seleccione una o varias celdas a las que desee dar formato.
    2. En el Desarrollador o Estado barra, haga clic en Grabar macro .
    3. En el Grabar macro configure los siguientes parámetros:
      • Nombre de la macro Formato_cabecera (porque vamos a formatear las cabeceras de las columnas).
      • Sitúe el cursor en la casilla Tecla de acceso directo y pulse simultáneamente las teclas Mayús + F. Esto asignará el atajo de teclado Ctrl + Mayús + F a la macro.
      • Elija almacenar la macro en este libro de trabajo.
      • Para Descripción utilice el siguiente texto que explica lo que hace la macro: Pone el texto en negrita, añade color de relleno y lo centra .
      • Haga clic en OK para iniciar la grabación.

    4. Dé a las celdas preseleccionadas el formato que desee. En este ejemplo, utilizaremos el formato de texto en negrita, el color de relleno azul claro y la alineación centrada.

      Sugerencia: no seleccione ninguna celda una vez que haya empezado a grabar la macro, ya que así se asegurará de que todo el formato se aplique a la celda. selección no un rango específico.

    5. Haga clic en Detener grabación en el Desarrollador o la pestaña Estado bar.

    Ahora, puede seleccionar cualquier rango de celdas en cualquier hoja, pulsar el atajo de teclado asignado ( Ctrl+ Mayús + F ), y su formato personalizado se aplicará inmediatamente a las celdas seleccionadas.

    Cómo trabajar con macros grabadas en Excel

    Se puede acceder a todas las opciones principales que ofrece Excel para las macros a través de la opción Macro Para abrirlo, pulse el botón Macros en el botón Desarrollador o pulse la combinación de teclas Alt+F8.

    En el cuadro de diálogo que se abre, puede ver una lista de las macros disponibles en todos los libros abiertos o asociadas a un libro en particular y hacer uso de las siguientes opciones:

    • Ejecutar - ejecuta la macro seleccionada.
    • Entra en - le permite depurar y probar la macro en el Editor de Visual Basic.
    • Editar - abre la macro seleccionada en el Editor VBA, donde puede ver y editar el código.
    • Borrar - borra definitivamente la macro seleccionada.
    • Opciones - permite cambiar las propiedades de la macro, como el Atajo clave y Descripción .

    Cómo ver macros en Excel

    El código de una macro de Excel puede visualizarse y modificarse en el Editor de Visual Basic. Para abrir el Editor, pulse Alt + F11 o haga clic en el botón Visual Basic en el botón Desarrollador ficha.

    Si usted ve el Editor VB por primera vez, por favor no se sienta desanimado o intimidado. No vamos a hablar de la estructura o sintaxis del lenguaje VBA. Esta sección sólo le dará una comprensión básica de cómo funcionan las macros de Excel y lo que realmente hace la grabación de una macro.

    El Editor VBA tiene varias ventanas, pero nos centraremos en las dos principales:

    Explorador de proyectos - muestra una lista de todos los libros de trabajo abiertos y sus hojas. Además, muestra módulos, formularios de usuario y módulos de clase.

    Código Ventana - aquí es donde puede ver, editar y escribir código VBA para cada objeto mostrado en el Explorador de proyectos.

    Cuando grabamos la macro de ejemplo, ocurrieron las siguientes cosas en el backend:

    • Un nuevo módulo ( Moduel1 ).
    • El código VBA de la macro se escribió en la ventana Código.

    Para ver el código de un módulo concreto, haga doble clic en el módulo ( Módulo 1 en nuestro caso) en la ventana del Explorador de proyectos. Normalmente, un código de macro tiene estas partes:

    Nombre de la macro

    En VBA, cualquier macro empieza por Sub seguido del nombre de la macro y termina con Fin Sub donde "Sub" es la abreviatura de Subrutina (también llamado Procedimiento Nuestra macro de ejemplo se llama Formato_cabecera() por lo que el código comienza con esta línea:

    Sub Formato_cabecera()

    Si desea cambiar el nombre de la macro simplemente borre el nombre actual y escriba uno nuevo directamente en la ventana Código.

    Comentarios

    Las líneas prefijadas con un apóstrofo (') y mostradas en verde por defecto no se ejecutan. Se trata de comentarios añadidos con fines informativos. Las líneas de comentario pueden eliminarse con seguridad sin que ello afecte a la funcionalidad del código.

    Normalmente, una macro grabada tiene de 1 a 3 líneas de comentarios: nombre de la macro (obligatorio); descripción y acceso directo (si se ha especificado antes de la grabación).

    Código ejecutable

    Después de los comentarios, viene el código que ejecuta las acciones que has grabado. A veces, una macro grabada puede tener mucho código superfluo, que aun así puede ser útil para averiguar cómo funcionan las cosas con VBA :)

    La siguiente imagen muestra lo que hace cada parte del código de nuestra macro:

    Cómo ejecutar una macro grabada

    Al ejecutar una macro, le dices a Excel que vuelva al código VBA grabado y ejecute exactamente los mismos pasos. Hay algunas formas de ejecutar una macro grabada en Excel, y aquí están las más rápidas:

    • Si ha asignado un método abreviado de teclado a la macro, pulsa ese acceso directo.
    • Pulse Alt + 8 o haga clic en el botón Macros en el botón Desarrollador En la pestaña Macro seleccione la macro deseada y haga clic en Ejecutar .

    También es posible ejecutar una macro grabada pulsando tu propio botón. Aquí tienes los pasos para crear una: Cómo crear un botón de macro en Excel.

    Cómo guardar macros en Excel

    Tanto si has grabado una macro como si has escrito el código VBA manualmente, para guardar la macro debes guardar el libro de trabajo como macro habilitada (extensión .xlms). A continuación te explicamos cómo hacerlo:

    1. En el libro que contiene la macro, haga clic en el botón Guardar o pulse Ctrl + S .
    2. En el Guardar como seleccione Libro de Excel habilitado para macros (*.xlsm) del Guardar como tipo y, a continuación, haga clic en Guardar :

    Macros de Excel: qué se graba y qué no

    Como acabas de ver, es bastante fácil grabar una macro en Excel. Pero para crear macros eficaces, tienes que entender lo que ocurre entre bastidores.

    Lo que se graba

    El grabador de macros de Excel captura bastantes cosas: casi todos los clics del ratón y las pulsaciones de teclas. Por lo tanto, debe pensar cuidadosamente sus pasos para evitar un exceso de código que pueda dar lugar a un comportamiento inesperado de su macro. A continuación se muestran algunos ejemplos de lo que registra Excel:

    • Seleccionar celdas con el ratón o el teclado. Sólo se registra la última selección antes de una acción. Por ejemplo, si seleccionas el rango A1:A10, y luego haces clic en la celda A11, sólo se registrará la selección de A11.
    • Formato de celdas, como color de relleno y fuente, alineación, bordes, etc.
    • Formateo de números como porcentaje, moneda, etc.
    • Edición de fórmulas y valores. Los cambios se registran después de pulsar Intro .
    • Desplazarse, mover ventanas de Excel, cambiar a otras hojas y libros de trabajo.
    • Añadir, nombrar, mover y eliminar hojas de cálculo.
    • Crear, abrir y guardar libros de trabajo.
    • Ejecutar otras macros.

    Lo que no se puede grabar

    A pesar de las muchas cosas diferentes que Excel puede grabar, ciertas características están más allá de las capacidades de la grabadora de macros:

    • Personalización de la cinta de opciones y la barra de herramientas de acceso rápido de Excel.
    • Acciones dentro de cuadros de diálogo de Excel como Formato condicional o Buscar y reemplazar (sólo se registra el resultado).
    • Interacciones con otros programas. Por ejemplo, no se puede grabar copiar/pegar de un libro de Excel a un documento de Word.
    • Cualquier cosa que implique el Editor VBA. Esto impone las limitaciones más significativas - muchas cosas que se pueden hacer a nivel de programación no se pueden grabar:
      • Creación de funciones personalizadas
      • Visualización de cuadros de diálogo personalizados
      • Hacer bucles como Siguiente , Para cada uno , Hacer mientras etc.
      • Evaluación de condiciones. En VBA, puede utilizar la función IF Then Else para probar una condición y ejecutar algún código si la condición es verdadera u otro código si la condición es falsa.
      • Ejecutar código basado en eventos. Con VBA, puede utilizar muchos eventos para ejecutar un código asociado a ese evento (como abrir un libro de trabajo, recalcular una hoja de cálculo, cambiar la selección, etc.).
      • Uso de argumentos. Al escribir una macro en el Editor VBA, puede suministrar argumentos de entrada para que una macro realice una determinada tarea. Una macro grabada no puede tener argumentos porque es independiente y no está conectada a ninguna otra macro.
      • Por ejemplo, si graba una macro que copie celdas específicas, digamos en la celda Total Excel sólo registrará las direcciones de las celdas copiadas. Con VBA, puede codificar la lógica, es decir, copiar los valores en la fila Total fila.

    Aunque las limitaciones anteriores establecen muchos límites para las macros grabadas, siguen siendo un buen punto de partida. Incluso si no tiene ni idea del lenguaje VBA, puede grabar rápidamente una macro y, a continuación, analizar su código.

    Consejos útiles para grabar macros en Excel

    A continuación encontrarás algunos consejos y notas que pueden ahorrarte mucho tiempo y nervios, haciendo que tu curva de aprendizaje sea más suave y que las macros sean más eficientes.

    Utilizar referencias relativas para la grabación de macros

    Por defecto, Excel utiliza absoluto referencias Esto significa que su código VBA siempre se referirá exactamente a las mismas celdas que seleccionó, sin importar en qué parte de la hoja de cálculo se encuentre cuando ejecute la macro.

    Sin embargo, es posible cambiar el comportamiento por defecto a referencia relativa En este caso, VBA no codificará las direcciones de las celdas, sino que trabajará relativamente a la celda activa (seleccionada en ese momento).

    Para grabar una macro con referencia relativa, haga clic en el botón Utilice Referencias relativas en el botón Desarrollador Para volver a la referenciación absoluta, pulse de nuevo el botón para desactivarla.

    Por ejemplo, si registras la configuración de una tabla con la referenciación absoluta por defecto, tu macro siempre recreará la tabla en el mismo lugar (en este caso, Cabecera en A1, Artículo1 en A2, Artículo2 en A3).

    Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Cabecera" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub

    Si graba la misma macro con referenciación relativa, la tabla se creará allí donde ponga el cursor antes de ejecutar la macro ( Cabecera en la célula activa, Artículo1 en la celda inferior, y así sucesivamente).

    Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ).Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ).Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ).Select End Sub

    Notas:

    • Cuando utilice referencias relativas, asegúrese de seleccionar la celda inicial antes de empezar a grabar una macro.
    • Las referencias relativas no sirven para todo. Algunas funciones de Excel, por ejemplo convertir un rango en una tabla, requieren referencias absolutas.

    Seleccionar rangos mediante atajos de teclado

    Cuando seleccionas una celda o un rango de celdas utilizando el ratón o las teclas de flecha, Excel escribe las direcciones de las celdas. En consecuencia, cada vez que ejecutes una macro, las operaciones grabadas se realizarán exactamente en las mismas celdas. Si esto no es lo que quieres, utiliza atajos para seleccionar celdas y rangos.

    A modo de ejemplo, grabemos una macro que establezca un formato específico (d-mmm-aa) para las fechas de la siguiente tabla:

    Para ello, graba las siguientes operaciones: pulsa Ctrl + 1 para abrir el Formatear celdas diálogo> Fecha> elegir formato> Aceptar. Si su grabación incluye la selección del rango con el ratón o las teclas de flecha, Excel producirá el siguiente código VBA:

    Sub Formato_Fecha() Rango( "A2:B4" ). Seleccionar Selección.FormatoNumero = "d-mmm-aa" End Sub

    Si ejecuta la macro anterior, se seleccionará siempre el rango A2:B4. Si añade más filas a la tabla, la macro no las procesará.

    Ahora, veamos qué ocurre cuando seleccionas la tabla utilizando un acceso directo.

    Coloque el cursor en la celda superior izquierda del rango de destino (A2 en este ejemplo), inicie la grabación y pulse Ctrl + Mayús + Fin . Como resultado, la primera línea del código tendrá este aspecto:

    Range(Selección, CeldaActiva.CeldasEspeciales(xlUltimaCelda)). Seleccionar

    Este código selecciona todas las celdas desde la celda activa hasta la última celda utilizada, lo que significa que todos los datos nuevos se incluirán en la selección automáticamente.

    Como alternativa, puede utilizar las combinaciones Ctrl + Mayús + Flechas:

    • Ctrl + Mayús + Flecha derecha para seleccionar todas las celdas utilizadas a la derecha, seguido de
    • Ctrl + Mayús + Flecha abajo para seleccionar todas las celdas usadas hacia abajo.

    Esto generará dos líneas de código en lugar de una, pero el resultado será el mismo: se seleccionarán todas las celdas con datos hacia abajo y a la derecha de la celda activa:

    Rango(Selección, Selección. Fin (xlHaciaDerecha)). Seleccionar Rango(Selección, Selección. Fin (xlHaciaAbajo)). Seleccionar

    Grabar una macro para la selección en lugar de celdas específicas

    El método anterior (es decir, seleccionar todas las celdas utilizadas empezando por la celda activa) funciona muy bien para realizar las mismas operaciones en toda la tabla. En algunas situaciones, sin embargo, es posible que desee que la macro procese un determinado rango en lugar de toda la tabla.

    Para ello, VBA proporciona la función Selección que se refiere a la(s) celda(s) seleccionada(s) en ese momento. La mayoría de las cosas que se pueden hacer con un rango, también se pueden hacer con la selección. ¿Qué ventaja te da? En muchos casos, no necesitas seleccionar nada en absoluto mientras grabas - simplemente escribe una macro para la celda activa. Y luego, selecciona cualquier rango que quieras, ejecuta la macro, y manipulará toda la selección.

    Por ejemplo, esta macro de una línea puede formatear cualquier número de celdas seleccionadas como porcentajes:

    Sub Porcent_Format() Selection.NumberFormat = "0.00%" End Sub

    Planifique cuidadosamente lo que graba

    La grabadora de macros de Microsoft Excel captura casi toda su actividad, incluidos los errores que comete y corrige. Por ejemplo, si pulsa Ctrl + Z para deshacer algo, eso también se grabará. Con el tiempo, puede acabar con un montón de código innecesario. Para evitarlo, edite el código en el editor VB o detenga la grabación, elimine la macro deficiente y comience a grabar de nuevo.

    Hacer una copia de seguridad o guardar el libro de trabajo antes de ejecutar una macro

    El resultado de las macros de Excel no se puede deshacer. Por lo tanto, antes de ejecutar una macro por primera vez, tiene sentido crear una copia del libro o, al menos, guardar el trabajo actual para evitar cambios inesperados. Si la macro hace algo mal, basta con cerrar el libro sin guardar.

    Las macros grabadas deben ser cortas

    Cuando se automatiza una secuencia de tareas diferentes, se puede tener la tentación de grabarlas todas en una sola macro. Hay dos razones principales para no hacerlo. En primer lugar, es difícil grabar una macro larga sin errores. En segundo lugar, las macros grandes son difíciles de comprender, probar y depurar. Por lo tanto, es una buena idea dividir una macro grande en varias partes. Por ejemplo, al crear una tabla resumende varias fuentes, puede utilizar una macro para importar la información, otra para consolidar los datos y una tercera para dar formato a la tabla.

    Espero que este tutorial te haya servido para aprender a grabar una macro en Excel. En fin, te doy las gracias por leer y ¡espero verte en nuestro blog la semana que viene!

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.