Como executar uma macro em simultâneo em vários livros de trabalho?
Trabalhar com várias pastas de trabalho do Excel exige frequentemente a repetição da mesma operação ou tarefa automatizada em múltiplos ficheiros. Abrir cada livro individualmente para executar uma macro consome não só tempo valioso, mas também aumenta o risco de erro — especialmente em cenários com grandes volumes de ficheiros. Automatizar este processo é essencial para potenciar a produtividade e garantir precisão.
Ao utilizar o VBA (Visual Basic for Applications), simplifique o seu fluxo de trabalho ao executar automaticamente uma macro em todos os livros de trabalho de uma pasta específica — poupando tempo e garantindo consistência. Este guia mostra como configurar e usar uma solução VBA para aplicar a macro pretendida a múltiplos ficheiros sem precisar de os abrir manualmente.
Cenários típicos em que esta abordagem é útil incluem:
- Aplicar formatação ou cálculos a uma coleção de relatórios mensais
- Normalizar etapas de limpeza de dados em vários conjuntos de exportações de dados
- Atualizar modelos em lote ou adicionar estruturas a ficheiros antigos
Execute a mesma macro em vários livros de trabalho com código VBA
Para executar a mesma macro eficientemente em vários livros de trabalho sem precisar de os abrir manualmente um a um, utilize um script VBA concebido para operações em lote. Este método pede-lhe que selecione uma pasta e, de seguida, processa automaticamente todos os ficheiros nela contidos — ideal para a maioria das tarefas comuns de automação com macros.
Antes de começar:
- Todos os livros de trabalho de destino estão fechados. O script irá abri-los e processá-los conforme necessário.
- A macro que pretende executar não requer interação do utilizador — como caixas de mensagem ou pedidos de entrada —, uma vez que o processamento em lote será interrompido por diálogos.
- Guarde o seu trabalho, pois o processamento em lote de macros não pode ser facilmente anulado e poderá substituir dados caso não seja cuidadosamente programado.
Siga estes passos para aplicar uma macro em vários livros de trabalho:
1. Prima e mantenha premidas as teclas «ALT + F11» para abrir a janela do Microsoft Visual Basic for Applications.
2. No editor VBA aberto, clique em "Inserir« > »Módulo" para criar um novo módulo e cole a macro fornecida na janela em branco do módulo.
Código VBA: Execute a mesma macro em vários livros de trabalho simultaneamente:
Sub LoopThroughFiles()
Dim xFd As FileDialog
Dim xFdItem As Variant
Dim xFileName As String
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
If xFd.Show = -1 Then
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Do While xFileName <> ""
With Workbooks.Open(xFdItem & xFileName)
'your code here
End With
xFileName = Dir
Loop
End If
End Sub
Notas e dicas importantes:
- No código acima, localize a linha
With Workbooks.Open(xFdItem & xFileName). Copie e cole o código da sua macro pretendida (excluindo as linhas)SubeEnd Sub) entre esta linha eEnd With. Assim, a operação será executada em cada livro de trabalho aberto. - Verifique novamente a lógica da sua macro e os caminhos para garantir um processamento em lote correto e, se a macro efetuar alterações nos dados, considere testá-la primeiro com um pequeno conjunto de ficheiros.
Veja a captura de ecrã que ilustra onde colar a lógica da sua macro:

3. Prima a tecla "F5" no editor VBA para executar o script. Irá aparecer uma caixa de diálogo para seleção da pasta.
4. Na janela «Procurar», selecione a pasta que contém todos os livros de trabalho que pretende processar. O script percorrerá cada ficheiro do Excel nessa localização e executará a lógica da sua macro.

5. Clique em «OK» para iniciar a operação em lote. A secção da macro que adicionou será executada em todos os livros de trabalho-alvo da pasta selecionada. Lotes maiores poderão demorar mais, dependendo da complexidade da sua macro e do número de ficheiros.
- Segurança das macros: Se solicitado, ative as macros ou execute-as a partir de uma localização fidedigna.
- Destino Tipo de Ficheiro: O padrão
*.xls*inclui.xlsx,.xlsme.xlsb. Ajuste, se necessário. - Qualifique totalmente dentro do With:Utilize pontos iniciais (por exemplo,)
.Worksheets("Sheet1")) para garantir que as ações sejam aplicadas ao livro de trabalho aberto.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos