InicioSoftwareMs ExcelDominar VBA en Excel 365: cómo crear macros fácilmente

Dominar VBA en Excel 365: cómo crear macros fácilmente

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.
Excel VBA 365

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 Sub

Explicació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 Sub

Explicació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 Sub

Explicació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.

Artículos Recientes