Comprender cómo Excel VBA 365 automatiza tareas a través de la creación y edición de macro es esencial para aumentar la productividad, especialmente para los usuarios que manejan con frecuencia grandes cantidades de datos o tareas repetitivas. Macro registrar las actividades en hojas de trabajo reejecutables, ahorrando tiempo y esfuerzo.
Con Visual Basic for Applications (VBA), Excel se convierte en una plataforma para crear soluciones automatizadas a problemas complejos. Macro puede automatizar el procesamiento de datos, generar informes instantáneos e integrar Excel con otras aplicaciones.
Esta automatización es especialmente beneficiosa en trabajos que requieren una alta eficiencia, como el análisis de datos y la contabilidad. Además de reducir el error humano, macro permite a los usuarios centrarse en aspectos más estratégicos del trabajo. Por lo tanto, aprender a crear y editar macro en Excel VBA 365 es valioso para los profesionales de diversos campos.
Cómo crear macros en Excel VBA 365
1. Activación del entorno de desarrollo
El primer paso para crear un macro es asegurarse de que la pestaña Developer ya esté activa en Excel. Esta pestaña proporciona una variedad de herramientas para crear y administrar macro.
- Para activar la pestaña Developer, haz clic en File en la parte superior y, a continuación, selecciona Options.
- En la ventana Excel Options, seleccione Customize Ribbon en el lado izquierdo.
- Marque la opción Developer en el panel derecho y, a continuación, haga clic en OK. La pestaña Developer aparecerá ahora en la cinta de opciones de Excel.
Una vez habilitado, puede comenzar a crear macro de varias maneras, incluida la grabación de macro y el acceso a Visual Basic Editor (VBE) .
2. Grabar macros
Una de las formas más sencillas de crear una macro es utilizar la función de grabación. Esta función le permite registrar una serie de acciones realizadas en Excel.
- Para comenzar, haga clic en el botón Record Macro en la pestaña Developer.
- Aparecerá una ventana de diálogo en la que se le pedirá que indique la macro que se va a crear. Por ejemplo, podrías llamarlo ‘Test_Macro’. Asegúrese de que el nombre siga macro reglas de nomenclatura.
- Seleccione una ubicación de almacenamiento macro: en el libro actual o Personal Macro Workbook (para que se pueda acceder a ella en todos los libros de trabajo).
3. Nomenclatura de macros
A la hora de dar un nombre a macro, hay que tener en cuenta algunas reglas importantes:
- El nombre macro debe comenzar con una letra o signo de subrayado (‘_’).
- Los nombres no deben contener espacios entre caracteres.
- The macro nombre no debe ser el mismo que otros nombres que ya existen en el mismo libro.
4. Cambio de macros
Una vez que hayas creado tu macro, puedes cambiarlo yendo a Visual Basic Editor (VBE). Aquí, puede ver macro en el código y realizar cambios según sea necesario.
- Acceda a Visual Basic Editor haciendo clic en el botón Visual Basic en la pestaña Developer.
- En la ventana VBE, seleccione el macro que acaba de crear. El código macro se escribe como un procedimiento VB (Visual Basic) que comienza con la palabra clave ‘Sub’ y termina con ‘End Sub’.
- Puede agregar o cambiar el código VBA para mejorar macro funcionalidad.

Creación de macros desde cero
Este es un ejemplo de creación de un macro desde cero que registra pasos simples en una hoja de cálculo, los edita agregando formato de celda y muestra los resultados de los cálculos salariales usando Message Box.
1. Grabación de macros
En esta etapa, registraremos los pasos para ingresar los números y calcular el salario automáticamente:
- Introduzca el número de salario en la casilla A1.
- Introduzca el número de horas en la casilla A2.
- Suma los resultados en la casilla A3 para calcular el salario.
2. Editar macros
Después de registrar esos pasos básicos, puede abrir Visual Basic Editor (VBE) y agregar algo de código a:
- Dar formato a un rango de celdas con propiedades font y interior (por ejemplo, poner el texto en negrita y darle un color de fondo).
- Se agregó un Message Box para mostrar los resultados del cálculo de la nómina.
Ejemplo de macro simple: cálculo del salario y formato de celdas.
Sub Calculate_Salary()
Dim wage As Single
Dim hours As Single
Dim salary As Single
wage = Range(“A1”).Value
hours = Range(“A2”).Value
salary = wage * hours
MsgBox “Your salary is “ & salary, vbInformation, “Salary Calculation”
Range(“A3”).Value = salary
With Range(“A1:A3”)
.Font.Bold = True
.Interior.Color = RGB(144, 238, 144) ' Latar belakang hijau muda
End With
End SubExplicación del código:
- Dim wage As Single: Se trata de una declaración de wage variable (salario) con el tipo de datos Single.
- Dim hours As Single: Se trata de una declaración variable hours (horas laborables) con un tipo de datos Single.
- salary = wage * hours: Aquí, el salario total se calcula multiplicando los salarios y las horas trabajadas.
- MsgBox: Los resultados del cálculo del salario se mostrarán a través del cuadro de mensaje (Message Box).
- Range(“A3”).Value = salary: Los resultados del cálculo del salario se almacenan en la celda A3.
- With Range(“A1:A3”): Las celdas A1 a A3 se formatearán con texto en negrita y un fondo verde claro (RGB(1444, 238, 144)).
Resultados esperados:
- Ingresará el valor de los salarios en A1 y las horas trabajadas en A2.
- Cuando se ejecute el macro, el salario se calculará automáticamente y se mostrará en la celda A3.
- Los resultados salariales también aparecerán en el Message Box.
- Las celdas A1 a A3 tendrán formato con texto en negrita y un color de fondo verde claro.
Uso de For…Next Loop en macros
Al aprovechar la estructura For…Next Loop, puede automatizar el llenado de celdas en hojas de cálculo de Excel con datos específicos. For…Next Loop le permite iterar a través de filas o columnas dentro de un rango especificado, lo que lo hace muy efectivo para tareas repetidas en el llenado de datos.
Ejemplo: Rellenar un rango de celdas con resultados de suma de filas y columnas
Este es un ejemplo de un macro que utiliza For…Next Loop para rellenar el rango de celdas A1:E10 con el valor generado por la suma entre el número de fila y el número de columna.
Sub Fill_Cells_With_Loop()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 5
Cells(i, j).Value = i + j
Next j
Next i
With Range(“A1:E10”)
.Font.Bold = True
.Interior.Color = RGB(224, 255, 255)
End With
End SubExplicación del código:
- For i = 1 To 10: El primer bucle para la iteración a través de filas, de 1 a 10 (filas 1 a 10).
- For j =1 To 5: El segundo bucle para iteraciones a través de columnas, de 1 a 5 (columnas de la A a la E).
- Cells(i, j).Value =i + j: Rellena la celda con el resultado de la suma entre el número de fila (i) y el número de columna (j).
- With Range(“A1:E10”): Formatee las celdas A1 a E10 con texto en negrita y fondo azul claro.
Uso de la función Chr() para crear caracteres
La función Chr() en VBA funciona para generar caracteres que corresponden a ASCI codes. ASCII códigos son números que representan caracteres en los sistemas informáticos. Por ejemplo, el código 65 indica la letra A, mientras que el código 66 indica la letra B, y así sucesivamente.
Puede aprovechar la función Chr() para crear macros que rellenen las celdas con caracteres generados a partir de códigos ASCII, ya sea de forma aleatoria o específica.
Ejemplo: Rellenar un rango de celdas con caracteres aleatorios usando la función chr()
Sub Fill_Cells_With_Random_Characters()
Dim i As Integer, j As Integer
Dim asciiCode As Integer
For i = 1 To 5
For j = 1 To 5
asciiCode = Int(26 * Rnd) + 65
Cells(i, j).Value = Chr(asciiCode)
Next j
Next i
With Range(“A1:E5”)
.Font.Bold = True
.Interior.Color = RGB(255, 228, 196)
End With
End SubExplicación del código:
- Dim asciiCode As Integer: Declara una variable para almacenar código ASCII.
- Int(26 * Rnd) + 65: Genera un número aleatorio entre 65 y 90. El código 65 se A en ASCII y el código 90 se Z.
- Rnd genera un número aleatorio entre 0 y 1.
- 26 * Rnd genera un número entre 0 y 25 y luego suma 65 para obtener el código ASCII entre 65(A) y 90(Z).
- Cells(i, j).Value = Chr(asciiCode): Rellena una celda con caracteres generados por Chr() basados en código ASCII.
- With Range(“A1:E5”): Da formato a un rango de celdas de A1:E5 con texto en negrita y un fondo de color melocotón (RGB(255, 228, 196)).
Conclusión
Al utilizar Excel VBA 365, puede mejorar la eficiencia de su trabajo en Excel. Aprender sobre la creación y edición de macro proporcionará una habilidad invaluable en el mundo laboral moderno, donde la automatización es la clave del éxito.


