Cavalcante Consultores – treinamento e consultoria em finanças e Excel

Edição de macros gravadas

Cavalcante Consultores > Biblioteca de Excel > Edição de macros gravadas

Alterando macros feitas pelo gravador

Após gravar uma macro utilizando o gravador do Excel, você pode desejar alterar alguma de suas ações por motivos diversos: por exemplo, um passo pode ter sido gravado da maneira errada, ou uma ação importante pode ter sido omitida. Utilizando o Editor do Visual Basic, você poderá realizar a edição de macros gravadas previamente, alterando diretamente seu código em VBA.

Exemplo

Neste exemplo, alteraremos uma macro elaborada no conteúdo sobre gravação absoluta. A macro em questão adiciona um cabeçalho à primeira linha da planilha; o texto desse cabeçalho é definido no momento da gravação da macro. Observe:

Utilizando o VBE, esse valor pode ser alterado sem a necessidade de regravar a planilha. Siga os passos abaixo:

O código da macro Cabeçalho deverá aparecer. Ele deverá ser semelhante ao código abaixo:

Sub Cabecalho()
'
' Cabecalho Macro
' Macro gravada em 15/8/2006.
'
' Observe o código abaixo e descubra que linha deve ser alterada para
' que a macro escreva na primeira linha o seu nome em vez de
' "Cavalcante Consultores :: macro de cabeçalho".
'
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Cavalcante Consultores :: macro de cabeçalho"
    Range("A1:D1").Select
    Range("D1").Activate
    With Selection.Font
        .Name = "Verdana"
        .FontStyle = "Regular"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 2
    End With
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThick
        .ColorIndex = 1
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThick
        .ColorIndex = 1
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    With Selection.Interior
        .ColorIndex = 49
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
    End With
End Sub

Todas as linhas deste código foram geradas automaticamente durante a gravação da macro (com exceção das linhas que começam com aspas simples: elas indicam comentários sobre o programa e não são interpretadas na execução da macro).

Alteremos o texto que aparecerá na execução da macro: selecione a linha com o código ActiveCell.FormulaR1C1 = "Cavalcante Consultores :: macro de cabeçalho" e troque o texto entre aspas pelo de sua preferência:

Feche o VBE e execute a macro novamente:

As possibilidades de edição de macros são ilimitadas, e aprendendo mais sobre a linguagem VBA, você poderá fazer alterações sofisticadas em macros gravadas para automatizar um processo de forma eficiente e rápida.

Pratique!