Macros: um braço extra na sua rotina de revisão de textos

Macros são como pequenos apps dentro do Word que nos ajudam a automatizar tarefas mecânicas.

, 24 de outubro de 2021

Macros são como pequenos apps dentro do Word que nos ajudam a automatizar tarefas mecânicas, como substituições, formatações, inserção de textos que sempre se repetem, troca de dados com o Excel, entre outros. Provavelmente tudo de repetitivo que vier à sua mente uma macro pode resolver, a questão é quanto tempo se tem para dedicar à codificação de um programa que o faça.

Um exemplo de algo trabalhoso se feito manualmente, mas que pode ser resolvido em instantes por meio de uma macro: o alinhamento das notas de rodapé de acordo com o que prevê a ABNT. Segundo a norma, o número da nota deve estar sempre destacado do restante do texto: 

“As notas de rodapé podem ser conforme 7.1 e 7.2 e devem ser alinhadas a partir da segunda linha da mesma nota, abaixo da primeira letra da primeira palavra, de forma a destacar o expoente e sem espaço entre elas e com fonte menor” (NBR 10520).

exemplo de nota de rodapé ABNT

Automaticamente, o Word não faz isso. É preciso, a cada nota, ir às configurações de parágrafo e estabelecer o recuo de deslocamento. 

Também há a possibilidade de recorrer aos estilos. No entanto, para que o alinhamento ficasse correto, seriam necessários pelo menos 3: para notas de 1 a 9; de 10 a 99; de 100 a 999 e assim por diante. Trabalhar com estilos também envolve selecionar o texto e aplicá-los, em pelo menos 3 etapas.

Já via código de automação isso tudo pode ser feito em um clique. Claro que, para chegar a esse ponto, é preciso antes codificar a macro para que ela desempenhe a tarefa. Mas veja como pode funcionar:

Anatomia de uma macro para Microsoft Office

Macros são escritas numa linguagem específica do Office, chamada Visual Basic for Applications (VBA). O VBA foi lançado com o Excel 5, em 1993. A linguagem foi uma maneira de padronizar e oficializar os complementos que já existiam em diversas outras linguagens para suprir deficiências do programa.

A parte mais interessante dessa linguagem é que é possível aprender um pouco do seu funcionamento por meio da própria interface do Word, ao criar macros via ferramenta de gravação. Você pode entender melhor como fazer isso neste vídeo.

Entretanto, a “programação” por meio da interface – principalmente via localizar e substituir – é bastante limitada. Ela não inclui muitos passos de lógica úteis para ferramentas mais complexas, como instruções condicionais “if… then” (se a condição x for verdadeira, então faça y) ou estruturas de repetição “for each… next” (para cada x no grupo y, faça z).

Para começar, o código em VBA sempre inicia com uma linha que contém “Sub nomedamacro()” e termina com “End Sub”. Se você copiar um código e deixar de incluir a primeira e a última linha, o programa retornará um erro. 

Ainda, as linhas em verde que começam com ' são comentários, ou seja, o programa não as interpreta como instruções.

Veja um exemplo:

Sub vernotas()

'Verifica se existem notas de rodapé no documento
If FootnotesExist = False Then
    MsgBox "Não encontrei notas de rodapé"
    ActiveWindow.View.Type = wdPrintView 'Se a visualização estiver no modo web, muda para print
Else
    If ActiveWindow.View.Type = wdPrintView Then 'Se estiver no modo de impressão
        With ActiveWindow.View
            .Type = wdWebView 'Passa para o modo web
            .SeekView = wdSeekFootnotes 'Mostra as notas de rodapé
            .SplitSpecial = wdPaneFootnotes 'Abre o painel de notas
        End With
        ActiveWindow.SplitVertical = 30 'Coloca o tamanho 30 no painel
        With ActiveWindow.View.RevisionsFilter 'Mostra as revisões no modo simples
            .Markup = wdRevisionsMarkupSimple
            .View = wdRevisionsViewFinal
        End With
    Else
        ActiveWindow.Split = False 'Se a visualização estiver no modo web, muda para print
        ActiveWindow.View = wdPrintView 'Tira a visualização dividida
    End If
End If

End Sub

Onde as macros ficam “guardadas”

Por padrão, as macros que você cola em módulos dentro do arquivo Normal ficam salvas num arquivo de mesmo nome, em que ficam também todas as personalizações de configuração que você faz na sua instalação do Word. O Normal é um template base do Word (Normal.dotm) em que ficam salvas essas informações.

Já os módulos podem abrigar uma ou mais macros. Se quiser, você pode colocar todas as suas macros dentro de apenas um módulo, mas isso dificulta na hora de encontrar um código específico. Outra opção é agrupar as macros em módulos temáticos. Por fim, pode-se colocar cada macro dentro de um módulo exclusivo, de forma que fiquem bem reconhecíveis as localizações de cada uma.

Esses pontos são básicos para que você possa pôr em funcionamento um código copiado de uma fonte de confiança. Se você quiser começar a ir mais fundo nesse mundo, recomendo começar pela documentação da linguagem no repositório da Microsoft.

VBA é a única linguagem em que se pode criar macros para Word?

Não. É possível criar aplicações até mais robustas por meio de outras linguagens de programação, como VB.NET, C#, C++, e, mais recentemente, javascript ou typescript. No entanto, essas outras linguagens exigem um nível de conhecimento maior, enquanto o VBA é simplificado e já supre boa parte da demanda.

Macros são vantajosas?

Na minha visão, são sim. Eu uso várias delas todos os dias, desde uma simples ferramenta que adiciona um ponto final e já sobe a caixa da próxima palavra até outras rotinas mais complexas, como mostrei no vídeo acima. Agora, se as macros vão facilitar o seu dia a dia, isso só você poderá dizer. 😊


Escrito por Carol Machado,
em 24 de outubro de 2021.
Mestra em Ciências da Linguagem na Universidade Nova de Lisboa. Graduada em Letras pela PUCRS. Revisora desde 2008. Autora do Manual de Sobrevivência do Revisor Iniciante. :)
Foto de Carol Machado