¿cómo grabar una macro en excel?

PUNTOS CLAVE

  • Grabar una macro significa registrar las acciones que realiza en Excel.
  • Debe utilizar la grabadora de macros para grabar una macro.
  • La grabadora de macros genera el código en la parte posterior mientras realizas la actividad.
  • En Excel, no puede hacer una pausa mientras graba una macro.
  • La grabadora de macros no crea código perfecto, así que asegúrese de limpiar su código después de grabar.

Esta guía le ayudará a aprender todos los aspectos de la grabación de una macro. También aprenderá cómo limpiar el código después de guardarlo.

Entonces empecemos.

¿Qué es la grabadora de macros?

Excel Macro Recorder es una herramienta que puede registrar (no todas) las acciones que realiza en Excel y genera código para ello. Realice una tarea específica una vez y generará una macro para eso, y la próxima vez, en lugar de realizar esa tarea manualmente, deberá ejecutar ese código.

Piensa en una cámara de vídeo, funciona así y genera código para la actividad que estás realizando.

Debe comprender que puede haber ocasiones en las que una grabadora de macros no pueda proporcionar código. Sin embargo, sigue siendo una excelente manera de aprender el código si no lo conoce.

Puede encontrar el botón de grabación de macros en la pestaña de desarrollador .

botón-grabador-de-macro

Usar VBA para programar en Excel es una de las habilidades avanzadas en Excel y, para comenzar con VBA, debe dominar la grabación de macros.

Planificar antes de grabar una macro

Si quieres grabar un vídeo, necesitas hacer un poco de planificación antes, como crear un guión, tener las luces adecuadas, etc.

acerca de la grabadora de macros

Asimismo, grabar una macro requiere cierta planificación.

El punto es que no desea obtener código para la actividad que no desea ejecutar mientras usa nuevamente la macro grabada.

La mejor manera de hacerlo es escribir los pasos que debe completar y luego seguirlos mientras graba.

Aquí grabaremos una macro que puede aplicar el siguiente formato a la celda seleccionada:

  • Color de fuente: rojo
  • Tamaño de fuente: 12
  • Estilo de fuente: Verdena
  • Texto de fuente: Negrita

Como dije, la planificación es fundamental, y antes de grabar esta macro, hay una cosa de la que debemos ocuparnos, y es seleccionar la celda objetivo antes de comenzar a grabar.

Como dije, la planificación es fundamental, y antes de grabar esta macro, hay una cosa de la que debemos ocuparnos, y es seleccionar la celda objetivo antes de comenzar a grabar.

El motivo es que si seleccionamos una celda mientras grabamos la macro, también guardará esa selección.

Entonces, cuando vuelva a ejecutar esta macro, seleccionará esa celda en particular para aplicarle todo el formato. Pero lo que queremos es aplicar el formato en la celda que está activa (que está seleccionada).

Pasos para grabar una macro usando la Grabadora de macros

Para GUARDAR una MACRO en Excel, puedes seguir los siguientes pasos:

  1. Primero, seleccione la celda A4 (esta es la celda donde aplicaremos el formato y grabaremos nuestra macro).
    record-a-macro-in-excel
  2. Después de eso, vaya a la “pestaña Desarrollador” y antes de presionar el botón “GUARDAR”, habilite la referencia relativa (aprenderemos más sobre esto en unos minutos).
    turn-on-the-relative-reference
  3. Presione el botón de grabar.
  4. Y en el momento en que hagas clic en él, aparecerá un cuadro de diálogo para completar algunos detalles sobre la macro que vas a grabar (sí, necesitamos completarlo).
    dialog-box-to-fill-some-of-the-details-about-the-macro
    • Nombre de la macro: “ResaltarCelda”.
    • Tecla de acceso rápido: presione Shift+H para configurar el método abreviado de teclado Control+Shift+H.
    • Guardar macro en: seleccione Carpeta de macros personal.
    • Descripción: esta macro aplica un color rojo, tamaño de fuente 12, estilo de fuente Verdana y pone la fuente en negrita.
  5. Finalmente, haga clic en Aceptar.
  6. En este punto, Excel comienza a guardar todo (puedes ver el ícono en la barra de estado que dice «Una macro está grabando, haz clic para detener la grabación»).
    a-macro-is-currently-recording
  7. Así que ahora aplique los cuatro formatos que decidimos.
    apply-all-the-four-formattings
    • Color de fuente: rojo
    • Tamaño de fuente: 12
    • Estilo de fuente: Verdena
    • Texto de fuente: Negrita
  8. Una vez que hayas hecho eso, regresa a la pestaña de desarrollador y haz clic en «Detener grabación» o también puedes detener la grabación desde la barra de estado donde dice «haz clic aquí para detener la grabación». registro».
    stop-recording

¡Felicidades! Lo has hecho y en este punto tienes una macro guardada en tu libro de trabajo, pero ahora lo siguiente es entenderla.

Cómo genera código Macro Recorder

La grabadora de macros genera un código para usted en la parte posterior a medida que realiza las actividades.

Para entender esto, primero necesitas ver el código. Entonces, para hacer esto, abra el editor de Visual Basic , vaya a la pestaña Desarrollador ➜ Editor de Visual Basic.

editor-visual-basico-abierto

Y luego abre el módulo 1 donde tienes almacenado tu código.

módulo abierto1

En la ventana de código, puede ver el código completo generado por la grabadora de macros junto con todos los detalles que ingresó.

Como puede ver, el nombre de la macro, la tecla de acceso directo y la descripción están antes del código.

Ahora comprendamos el código (como dije antes, la grabadora de macros no crea un código perfecto, por lo que debes limpiarlo cada vez, y lo aprenderemos en la siguiente parte).

Ha completado las cuatro actividades y la grabadora de macros ha generado el código de cuatro partes.

código-generado-por-macrograbadora
  1. En la primera parte, el código dice que el color de fuente de la celda seleccionada debe ser rojo y usó un valor numérico para eso.
  2. La segunda parte del código indica que el tamaño de fuente de las celdas seleccionadas debe ser «12».
  3. Y en la tercera parte dice que el estilo de fuente debería ser «Verdana».
  4. Finalmente, en la cuarta parte dice que la fuente de la celda seleccionada debe estar en negrita.

Limpiar macro grabada

En este punto, ha grabado su primera macro y sabe cómo se genera este código. Pero necesitas limpiar el código que tienes en el módulo.

 Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 .TintAndShade = 0 End With With Selection.Font .Name = "Calibri" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNo .Color = -16776961 .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With With Selection.Font .Name = "Verdana" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .Color = -16776961 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With Selection.Font.Bold = True End Sub

Si miras de cerca, eso es mucho más tiempo que las actividades que puede realizar. Hay muchas propiedades incluidas en este código que no son obligatorias.

No sólo con este código, cada vez que grabas una macro tienes que limpiarla cada vez.

Pero antes de comenzar a limpiar ese código, debes recordar las cuatro actividades que hiciste y para las cuales necesitas tener código en tu módulo:

  • Color de fuente: rojo
  • Tamaño de fuente: 12
  • Estilo de fuente: Verdena
  • Texto de fuente: Negrita

Identifiquemos las líneas de código que realizan estas cuatro actividades.

identificar líneas de código

Ahora ha identificado las líneas de código que realizan las actividades reales que realizó y también tenemos este código de cuatro partes.

Es hora de limpiar el código y eliminar todas las líneas no deseadas. Siga los pasos a continuación.

  • En la PRIMERA parte, necesita el código de línea que aplica el color de fuente ROJO, por lo que la propiedad «TintAndShade» no lo requiere.
código-de-línea-que-aplica-el-color-de-fuente-rojo
  • Ahora, en la SEGUNDA parte necesitamos el tamaño de fuente, no todas las demás propiedades, así que elimínelas.
tamaño de fuente
  • Después de eso, en la TERCERA parte, necesitamos tener la propiedad del nombre de la fuente, así que elimine todas las demás propiedades.
propiedad-nombre-fuente
  • En la parte CUATRO, solo tienes una línea de código, que es para poner la fuente en negrita.

En este punto, el código se ve así, que es mucho más bajo que el código generado por la grabadora de macros.

poner la fuente en negrita
 Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 End With With Selection.Font .Size = 12 End With With Selection.Font .Name = "Verdana" End With Selection.Font.Bold = True End Sub

Pero aún puedes hacer más.

Si observa de cerca el código, usó «With Selection.Font» cuatro veces, pero como se refiere al mismo objeto para las cuatro propiedades, puede usarlo una vez.

Entonces el código final será:

código final
 Sub HighlightCell() ' 'HighlightCell Macro 'This macro applies a red color, font size 12, 'font style Verdana, and makes the font bold ' 'Keyboard Shortcut: Ctrl+Shift+H ' With Selection.Font .Color = -16776961 .Name = "Verdana" .Size = 12 .Bold = True End With End Sub

Cuando ejecute este código, realizará las mismas actividades que registró.

¿Qué has hecho?

En el nuevo código, solo tienes líneas de código que realizan las actividades que necesitas.

El punto a entender aquí es que con cada objeto siempre hay propiedades, y cuando la grabadora de macros graba, agrega todas esas propiedades con ese objeto incluso si no las usa.

Es por eso que necesitas eliminar todas estas propiedades del código.

Y la otra cosa es que incluso si usas solo un objeto en tu código, la grabadora de macros hace referencia a él una y otra vez cuando realizas diferentes actividades y es por eso que usaste «Con selección. Fuente» una vez y agregas todas las propiedades debajo. .

En todas las situaciones, para limpiar cualquier código generado por la grabadora de macros, debe identificar las líneas de código reales que realizan las actividades que necesita y eliminar el resto.

Al limpiar el código de macro guardado, la mejor manera es depurar el código paso a paso.

Léelo

  • Abra el editor VBA y la ventana de Excel uno al lado del otro, luego presione F8 para ejecutar el código paso a paso.
  • Como tiene la ventana de Excel abierta al costado, puede ver qué línea de código está ejecutando la actividad.
  • Y una vez que haya identificado el código que necesita, podrá eliminar el código, lo cual no es necesario.

Nombra una macro

Cada vez que graba una macro, es necesario darle un nombre a esa macro, pero hay algunas reglas que un nombre debe cumplir:

  • El nombre de una macro puede tener hasta 80 caracteres.
  • No se pueden utilizar espacios, puntuación ni caracteres especiales.
  • Debe comenzar con una letra.

Aparte de estas reglas, hay algunas palabras que VBA prohíbe usar como nombre.

Por otro lado, es fundamental utilizar un nombre significativo en lugar de tener nombres predeterminados como Macro1 o Prueba1.

Como no puede utilizar espacios en el nombre de una macro, puede utilizar un guión bajo o poner en mayúscula la primera letra de cada palabra para aumentar la legibilidad.

Almacenamiento de la macro grabada

Antes de grabar una macro, debes especificar dónde quieres guardarla y tienes tres opciones para ello:

almacenar-la-macro-grabada
  • Nuevo libro de trabajo : puede seleccionar esta opción si desea guardar su macro en un nuevo libro de trabajo.
  • Este libro de trabajo : al seleccionar esta opción, puede guardar la macro en el libro de trabajo actual.
  • Libro de macros personal : con esta opción puede acceder a macros de todos los libros de trabajo.

Referencia relativa

Al grabar la macro anterior, te dije que seleccionaras «Usar referencias relativas» antes de presionar el botón «Iniciar grabación».

En Excel, cuando graba una macro, Excel usa «Referencia absoluta» de forma predeterminada. Sin embargo, puede cambiarlo antes de grabar una macro.

El punto es que usar referencias relativas es crucial si desea que una macro ejecute la actividad registrada en cualquier parte de la hoja de trabajo.

Para que entiendas la diferencia entre los dos modos de referencia, quiero que registres la actividad de dos maneras diferentes.

  • Primero, seleccione la celda A1 y comience a grabar una macro (sin habilitar «Usar referencia relativa»), luego seleccione la celda E5 .
  • Obtendrá el siguiente código mediante la grabadora de macros:
 Sub AbsoluteReferenceMacro() Range("E5").Select End Sub
  • Nuevamente, seleccione la celda A1, habilite “Usar referencia relativa” y registre la misma actividad (seleccione la celda E5).
  • Pero por el momento, el código que tienes es diferente:
 Sub RelativeReferenceMacro() ActiveCell.Offset(4, 4).Range(“A1”).Select End Sub

Grabaste estos dos códigos haciendo la misma actividad pero usando diferentes modos de referencia. ¿BIEN?

El primer código de macro es bastante sencillo de entender; dice seleccionar la celda E5.

Y si ejecuta esta macro, hace lo mismo, que es seleccionar la celda E5, cualquier celda que haya seleccionado en este momento.

Por otro lado, el segundo código de macro dice algo más, y si selecciona otra celda antes de ejecutar este código, seleccionará una celda diferente.

¿Para qué?

Cuando grabó esta macro, la celda activa era A1, luego seleccionó E5, que está cuatro celdas hacia abajo y cuatro celdas a la derecha de la celda A1.

Ahora, debido a que guardó esta macro con una referencia relativa, esto siempre seleccionará la celda, que está cuatro celdas hacia abajo y cuatro celdas a la derecha de la celda activa.

Digamos que si la celda activa es D4, seleccionará la celda H8, que está cuatro celdas hacia abajo y cuatro celdas a la derecha.

Puedes cambiar la referencia en cualquier momento, incluso en mitad de la grabación.

pausa macro

Desafortunadamente, Excel no le permite pausar una macro mientras se está grabando. Esto es posible en Microsoft Word, pero no en Excel.

Si está grabando una macro en la que necesita realizar muchas actividades, es mejor grabarla en partes para que haya menos posibilidades de errores.

Limitaciones de la grabadora de macros

Sí, algunas limitaciones vienen con la grabadora de macros. Hay muchas cosas que puedes hacer con el código VBA, pero la grabadora de macros no puede registrar todas las actividades.

  • No se puede crear una función personalizada : VBA le permite crear una función personalizada que puede usar en la hoja de trabajo, pero esto no es posible al grabar una macro.
  • No se pueden usar funciones integradas : VBA tiene sus funciones ( Funciones VBA ), pero no puede usarlas con la grabadora de macros.
  • No se pueden probar las condiciones : al grabar una macro, no puede usar la instrucción VBA IF Then Else para verificar las condiciones.
  • No se puede realizar un bucle : en VBA, puede utilizar instrucciones de bucle mientras escribe código, pero esto no es posible con la grabadora de macros.
  • No se puede realizar actividad con objeto : al grabar una macro, no se puede realizar una acción sin seleccionar un objeto. Por ejemplo, si desea poner en negrita el texto de una celda en particular, primero debe seleccionar esa celda.

¿Vale la pena utilizar la grabadora de macros?

Apuesto a que tienes esta pregunta en mente y es válida. Permítanme compartirles una historia personal para responder esta pregunta.

Hace unos años estaba trabajando en un código VBA para insertar una tabla dinámica y en ese momento no conocía todos los objetos que necesitaba usar para escribir este código. Entonces, lo que hice fue grabar una macro mientras creaba manualmente una tabla dinámica.

A continuación, miré este código para comprender todo el proceso involucrado en la inserción de una tabla dinámica. Sí, este código no era perfecto pero me dio una idea para escribir.

Lo que quiero decir es que puede haber situaciones en las que necesites escribir el código y la grabadora de macros puede ayudarte en ese momento. La grabadora de macros también me ayudó a escribir códigos para esta plantilla de inventario .

Envoltura

Debes centrarte en los siguientes puntos para grabar una macro con éxito:

  • Defina el libro de trabajo donde guardará la macro y cerrará todos los demás libros de trabajo.
  • Asegúrese de seleccionar el objeto correcto para grabar la macro.
  • Asegúrese de decidir si utilizará referencias absolutas o relativas antes de guardar la macro.
  • Planifica las acciones que quieres realizar.

Preguntas frecuentes

¿Dónde está el botón de la grabadora de macros?

Está en el grupo de códigos en la pestaña Desarrollador.

¿Cómo puedo ver el código generado por la grabadora de macros?

Puedes verlo desde el editor de Visual Basic.

¿La grabadora de macros genera código perfecto?

En realidad no, necesitas limpiar este código después de guardarlo.

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *