Dominando o VBA no Excel 365 – Como criar macros facilmente

Usando For…Next Loop em macros

Aproveitando a estrutura For…Next Loop, você pode automatizar o preenchimento de células em planilhas do Excel com dados específicos. For…Next Loop permite iterar por linhas ou colunas dentro de um intervalo especificado, tornando-o muito eficaz para repetir tarefas no preenchimento de dados.

Exemplo: preencher um intervalo de células com resultados de soma de linhas e colunas

Aqui está um exemplo de um macro que utiliza For…Next Loop para preencher o intervalo de células A1:E10 com o valor gerado pela soma entre o número da linha e o número da coluna.

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

Explicação do código:

  • For i =  1 To 10: o primeiro loop para iteração por meio de linhas, de 1 a 10 (linhas 1 a 10).
  • For j = 1 To 5: O segundo loop para iterações por meio de colunas, de 1 a 5 (colunas A a E).
  • Cells(i, j).Value =  i + j: Preencha a célula com o resultado da soma entre o número da linha (i) e o número da coluna (j).
  • With Range(“A1:E10”): Formate as células A1 a E10 com texto em negrito e fundo azul claro.

Usando a função Chr() para criar caracteres

A função Chr() no VBA funciona para gerar caracteres que correspondem a ASCI codes. ASCII códigos são números que representam caracteres em sistemas de computador. Por exemplo, o código 65 indica a letra A, enquanto o código 66 indica a letra B e assim por diante.

Você pode aproveitar a função Chr() para criar macros que preenchem células com caracteres gerados a partir de códigos ASCII, aleatoriamente ou especificamente.

Exemplo: preenchendo um intervalo de células com caracteres aleatórios usando a função 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

Explicação do código:

  • Dim asciiCode As Integer: Declara uma variável para armazenar o código ASCII.
  • Int(26 *  Rnd) + 65: Gera um número aleatório entre 65 e 90. O código 65 é A em ASCII e o código 90 é Z.
  • Rnd gera um número aleatório entre 0 e 1.
  • 26 * Rnd gera um número entre 0 e 25 e, em seguida, adiciona 65 para obter o código ASCII entre 65(A) e 90(Z).
  • Cells(i, j).Value = Chr(asciiCode): Preenche uma célula com caracteres gerados por Chr() com base no código ASCII.
  • With Range(“A1:E5”): Formata um intervalo de células A1:E5 com texto em negrito e um plano de fundo cor de pêssego (RGB(255, 228, 196)).

Conclusão

Ao utilizar Excel VBA 365, você pode melhorar a eficiência do seu trabalho no Excel. Aprender sobre macro criação e edição fornecerá uma habilidade inestimável no mundo moderno do trabalho, onde a automação é a chave para o sucesso.

Últimos artigos