Una de las funciones más potentes, pero rara vez utilizadas de Excel es la capacidad de crear muy fácilmente tareas automatizadas y lógica personalizada dentro de las macros. Las macros proporcionan una forma ideal de ahorrar tiempo en tareas predecibles y repetitivas, así como de estandarizar los formatos de documentos, muchas veces sin tener que escribir una sola línea de código.
Si tiene curiosidad por saber qué son las macros o cómo crearlas realmente, no hay problema: lo guiaremos a través de todo el proceso.
Nota: el mismo proceso debería funcionar en la mayoría de las versiones de Microsoft Office. Las capturas de pantalla pueden tener un aspecto ligeramente diferente.
¿De qué vamos a hablar?
¿Qué es una macro?
Una macro de Microsoft Office (ya que esta funcionalidad se aplica a varias de las aplicaciones de MS Office) es simplemente código de Visual Basic para Aplicaciones (VBA) guardado dentro de un documento. Para una analogía comparable, piense en un documento como HTML y una macro como Javascript. De la misma manera que Javascript puede manipular HTML en una página web, una macro puede manipular un documento.
Las macros son increíblemente poderosas y pueden hacer casi cualquier cosa que tu imaginación pueda conjurar. Como una lista (muy) corta de funciones que puede hacer con una macro:
- Aplicar estilo y formato.
- Manipular datos y texto.
- Comunicarse con fuentes de datos (base de datos, archivos de texto, etc.).
- Cree documentos completamente nuevos.
- Cualquier combinación, en cualquier orden, de cualquiera de los anteriores.
Creación de una macro: una explicación con el ejemplo
Comenzamos con su archivo CSV de variedad de jardín. Nada especial aquí, solo un conjunto de números de 10×20 entre 0 y 100 con un encabezado de fila y columna. Nuestro objetivo es producir una hoja de datos presentable y bien formateada que incluya totales resumidos para cada fila.
Como dijimos anteriormente, una macro es código VBA, pero una de las cosas buenas de Excel es que puede crearlas / grabarlas sin que se requiera codificación, como haremos aquí.
Para crear una macro, vaya a Ver > macros > grabar macro.
Asigne a la macro un nombre (sin espacios) y haga clic en Aceptar.
Una vez hecho esto, todo de sus acciones se registran: cada cambio de celda, acción de desplazamiento, cambio de tamaño de ventana, lo que sea.
Hay un par de lugares que indican que Excel es modo de registro. Una es ver el menú Macro y observar que Detener grabación ha reemplazado la opción de Grabar macro.
El otro está en la esquina inferior derecha. El icono ‘stop’ indica que está en modo macro y pulsando aquí se detendrá la grabación (del mismo modo, cuando no esté en modo grabación, este icono será el botón Grabar macro, que puede utilizar en lugar de ir al menú Macros).
Ahora que estamos registrando nuestra macro, apliquemos nuestros cálculos resumidos. Primero agregue los encabezados.
A continuación, aplique las fórmulas apropiadas (respectivamente):
- =SUMA(B2:K2)
- =PROMEDIO(B2:K2)
- =MIN(B2:K2)
- =MÁX.(B2:K2)
- =MEDIANA(B2:K2)
Ahora, resalte todas las celdas de cálculo y arrastre la longitud de todas nuestras filas de datos para aplicar los cálculos a cada fila.
Una vez hecho esto, cada fila debe mostrar sus respectivos resúmenes.
Ahora, queremos obtener los datos de resumen de toda la hoja, por lo que aplicamos algunos cálculos más:
Respectivamente:
- =SUMA(L2:L21)
- =PROMEDIO(B2:K21) *Esto debe calcularse en todos los datos porque el promedio de los promedios de fila no es necesariamente igual al promedio de todos los valores.
- =MIN(N2:N21)
- =MAX(O2:O21)
- =MEDIANA(B2:K21) *Calculado en todos los datos por la misma razón que la anterior.
Ahora que los cálculos están hechos, aplicaremos el estilo y el formato. Primero aplique el formato general de número en todas las celdas haciendo un Seleccionar todo (ya sea Ctrl + A o haga clic en la celda entre los encabezados de fila y columna) y seleccione el icono “Estilo de coma” en el menú Inicio.
A continuación, aplique un poco de formato visual a los encabezados de fila y columna:
- Audaz.
- Centrado.
- Color de relleno de fondo.
Y por último, aplicar un poco de estilo a los totales.
Cuando todo esté terminado, así es como se ve nuestra hoja de datos:
Ya que estamos satisfechos con los resultados, detenga el registro de la macro.
Enhorabuena: acabas de crear una macro de Excel.
Para usar nuestra macro recién grabada, tenemos que guardar nuestro libro de Excel en un formato de archivo habilitado para macros. Sin embargo, antes de hacer eso, primero debemos borrar todos los datos existentes para que no estén incrustados en nuestra plantilla (la idea es que cada vez que usemos esta plantilla, importaremos la más actualizada.e datos).
Para ello, seleccione todas las celdas y elimínelas.
Con los datos ahora borrados (pero las macros aún incluidas en el archivo de Excel), queremos guardar el archivo como un archivo de plantilla habilitada para macros (XLTM). Es importante tener en cuenta que si guarda esto como un archivo de plantilla estándar (XLTX), las macros no poder ser corrido desde ella. Alternativamente, puede guardar el archivo como un archivo de plantilla heredada (XLT), lo que permitirá ejecutar macros.
Una vez que haya guardado el archivo como plantilla, continúe y cierre Excel.
Uso de una macro de Excel
Antes de cubrir cómo podemos aplicar esta macro recién registrada, es importante cubrir algunos puntos sobre las macros en general:
- Vea el punto anterior.
El código VBA es en realidad bastante potente y puede manipular archivos fuera del alcance del documento actual. Por ejemplo, una macro podría alterar o eliminar archivos aleatorios de la carpeta Mis documentos. Como tal, es importante asegurarse de que solamente ejecutar macros desde orígenes de confianza.
Para usar nuestra macro de formato de datos, abra el archivo Excel Template que se creó anteriormente. Al hacer esto, suponiendo que tenga habilitada la configuración de seguridad estándar, verá una advertencia en la parte superior del libro que dice que las macros están deshabilitadas. Debido a que confiamos en una macro creada por nosotros mismos, haga clic en el botón ‘Habilitar contenido’.
A continuación, vamos a importar el último conjunto de datos de un CSV (esta es la fuente de la hoja de cálculo utilizada para crear nuestra macro).
Para completar la importación del archivo CSV, es posible que de tenga que establecer algunas opciones para que Excel lo interprete correctamente (por ejemplo, delimitador, encabezados presentes, etc.).
Una vez importados nuestros datos, basta con ir al menú Macros (en la pestaña Ver) y seleccionar Ver macros.
En el cuadro de diálogo resultante, vemos la macro “FormatData” que registramos anteriormente. Selecciónelo y haga clic en Ejecutar.
Una vez que se ejecuta, es posible que vea que el cursor salta por unos momentos, pero a medida que lo hace, verá que los datos se manipulan. exactamente como lo grabamos. Cuando todo está dicho y hecho, debería verse como nuestro original, excepto con datos diferentes.
Mirando bajo el capó: lo que hace que una macro funcione
Como hemos mencionado un par de veces, una macro está controlada por código de Visual Basic para Aplicaciones (VBA). Cuando “graba” una macro, Excel en realidad está traduciendo todo lo que hace en sus respectivas instrucciones de VBA. En pocas palabras, no tiene que escribir ningún código porque Excel está escribiendo el código por usted.
Para ver el código que hace que se ejecute nuestra macro, en el cuadro de diálogo Macros haga clic en el botón Editar.
La ventana que se abre muestra el código fuente que se registró a partir de nuestras acciones al crear la macro. Por supuesto, puede editar este código o incluso crear nuevas macros completamente dentro de la ventana de código. Si bien la acción de grabación utilizada en este artículo probablemente se ajustará a la mayoría de las necesidades, las acciones más personalizadas o las acciones condicionales requerirían que edite el código fuente.
Llevando nuestro ejemplo un paso más allá…
Hipotéticamente, supongamos que nuestro archivo de datos de origen, los datos.csv, se producen mediante un proceso automatizado que siempre guarda el archivo en la misma ubicación (por ejemplo.C:/Data/data.csv es siempre los datos más recientes). El proceso de abrir este archivo e importarlo también se puede convertir fácilmente en una macro:
- Abra el archivo de plantilla de Excel que contiene nuestra macro “FormatData”.
- Registre una nueva macro denominada “LoadData”.
- Con la grabación de macros, importe el archivo de datos como lo haría normalmente.
- Una vez importados los datos, deje de registrar la macro.
- Elimine todos los datos de la celda (seleccione todos y luego elimine).
- Guarde la plantilla actualizada (recuerde utilizar un formato de plantilla habilitado para macros).
Una vez hecho esto, cada vez que se abra la plantilla habrá dos macros: una que carga nuestros datos y la otra que los formatea.
Si realmente quisiera ensuciarse las manos con un poco de edición de código, podría combinar fácilmente estas acciones en una sola macro copiando el código producido desde “LoadData” e insertándolo al principio del código desde “FormatData”.
Descargar esta plantilla
Para su comodidad, hemos incluido tanto la plantilla de Excel producida en este artículo como un archivo de datos de muestra para que juegue con ella.
Descargar plantilla de macro de Excel de How-To Geek