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

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.

Artículos más recientes