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

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 más recientes