Como Ler Vários PDFs pelo VBA com ou sem Tabelas
Você sabe como ler vários PDFs pelo VBA? Nesta aula vamos explicar passo a passo como extrair textos de PDFs usando o VBA, mesmo que os arquivos não tenham tabelas!
O que você vai ver aqui?
Automatize a Leitura de PDFs pelo VBA
Na aula de hoje você vai aprender como ler PDF com VBA! Isso significa que você será capaz de capturar qualquer informação de arquivos PDF, seja em formato de texto simples ou em tabelas, de forma rápida e automatizada.
Uma das etapas essenciais do nosso processo será importar o conteúdo do PDF para o Word utilizando o VBA. Assim, vamos conseguir explorar as funcionalidades do Word dentro do Excel e coletar as informações desejadas.
Quer aprender como ler arquivos PDF com VBA e automatizar suas tarefas para ganhar tempo no trabalho? Então faça download do material abaixo e continue com a leitura!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Baixando a Planilha para o VBA
O primeiro passo é fazer o download da planilha disponível no material didático. Com a planilha aberta, pressione Alt + F11 para acessar o Editor do VBA.

Como Ler Vários PDFs Usando o VBA
Antes de começarmos o código, é importante configurar a biblioteca correta no VBA.
Habilitando a Biblioteca do Word no VBA
Você precisará habilitar a referência Microsoft Word 16.0 Object Library. Para isso:
- Clique em Ferramentas > Referências
- Procure por Microsoft Word 16.0 Object Library (a lista está em ordem alfabética)
- Marque a caixa e clique em OK
Aplicações para Otimizar o Código VBA
No início e no final do código, vamos utilizar algumas Applications que tornam a execução mais rápida.
No início do código:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManualNo final do código:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomaticEssas configurações garantem que o Excel não fique recalculando durante a execução, o que deixa o processamento mais eficiente. O cálculo só será atualizado ao final do código.
Dica Extra: Se quiser entender melhor essas aplicações, temos um conteúdo exclusivo explicando todos os detalhes: como você pode pegar informações de tabelas em PDF.
Declaração de Variáveis no VBA
O próximo passo é declarar as variáveis que usaremos para ler múltiplos PDFs. Serão seis variáveis principais:
- Dim appWord As New Word.Application -> Aplicação do Word dentro do VBA
- Dim docWord As Word.Document -> Documento do Word
- Dim nomeCompletoArq As String -> Nome completo do arquivo, pasta + nome
- Dim frasePDF As Variant -> Textos em geral
- Dim arqPasta As Variant -> Pasta de arquivos
- Dim caminhoPasta As String -> Endereço ou caminho das pastas de arquivo.
Definindo o Caminho da Pasta
Aqui você define o caminho onde estão seus arquivos PDF:
caminhoPasta = "C:\Users\Diego\OneDrive - hashtagtreinamentos.com\Hashtag\Online\Arquivos das Aulas\2023\VBA\03-17 - Como ler informações de vários PDFs pelo VBA (com ou sem tabelas)\Arquivos\"Importante: Esse é o mesmo caminho utilizado na aula sobre leitura de tabelas em PDFs.
Listando os Arquivos da Pasta
O comando abaixo utiliza Dir para buscar todos os arquivos da pasta e armazenar na variável arqPasta:
arqPasta = Dir(caminhoPasta)Tornando o Word Visível (ou Não)
Com o comando abaixo, você controla se o Word ficará visível ou não durante o processo:
App.Word.Visible = TrueIsso ajuda a economizar processamento. Deixe o Word invisível na automação e visível apenas quando quiser testar ou acompanhar o que está acontecendo.
Como Ler Vários PDFs pelo VBA: Loop While para Percorrer os Arquivos
Agora vamos percorrer todos os arquivos PDF que estão dentro da variável arqPasta. Para isso, utilizaremos a estrutura de repetição While no VBA.
A estrutura While faz com que o código continue rodando enquanto uma determinada condição for verdadeira.
While arqPasta <> ""Ou seja, enquanto existirem arquivos na pasta, o código seguirá rodando.
Concatenando o Caminho Completo do Arquivo PDF
Em seguida, unimos o nome do arquivo (armazenado em arqPasta) com o caminho da pasta (caminhoPasta), criando o caminho completo do arquivo PDF.
While arqPasta <> ""
nomeCompletoArq = caminhoPasta & arqPastaAbrindo o PDF no Word pelo VBA
Set docWord = appWord.Documents.Open(nomeCompletoArq, False, True)Nesta linha estamos dizendo que a variável docWord vai receber o documento do Word, que é aberto a partir do arquivo PDF.
- O primeiro argumento False impede que apareça a mensagem de conversão do PDF em Word, ajudando a economizar processamento.
- O segundo argumento True indica que o arquivo será apenas lido, sem edições.
Observação: Apenas rodando o código até aqui já conseguimos abrir o PDF no Word. Apesar de o layout mudar um pouco, o conteúdo de texto e imagens permanece acessível.

Explorando Sentenças, Parágrafos e Tabelas no VBA
Após abrir o PDF, podemos explorar diferentes elementos do documento utilizando a variável docWord:
- Usar .Sentences para trabalhar com sentenças
- Acessar .Paragraphs para manipular parágrafos
- Usar .Tables para acessar as tabelas

Usando Debug.Print, conseguimos verificar na janela Immediate o número total de sentenças do documento. Para visualizar, selecione a linha e pressione F8:
Debug.Print docWord.Sentences.Count
Dica: Testando Comandos no Debug
Você também pode testar comandos diretamente na janela Immediate usando o sinal de interrogação(?):
?docWord.Sentences(1).TextO texto aparecerá sem formatação, mas podemos melhorar usando as funções nativas do Excel, como:
WorksheetFunction.Clean(WorksheetFunction.Trim(docWord.Sentences(1).Text))
Preenchendo Dados na Planilha com VBA
A primeira frase dentro do texto é “R$ milhões”. Se quisermos extrair essa frase de cada um dos documentos PDF, com o código atual já conseguimos fazer isso e jogar diretamente na tabela do Excel.
Na coluna A vamos inserir o nome do documento. Para isso, precisamos identificar qual é a primeira célula vazia da coluna A.
Existem duas formas de fazer isso manualmente:
- Pressionar Ctrl + seta para baixo para ir até a última linha preenchida e depois descer uma linha.
- Ou ir direto para a última linha do Excel (linha 1048576) e usar Ctrl + seta para cima para chegar na última célula preenchida. A primeira linha vazia será logo abaixo.
No VBA usamos exatamente essa lógica de maneira automatizada:
Range("A1048576").End(xlUp).Offset(1, 0).Value = arqPastaAo rodar essa linha (F8), você verá que o nome do arquivo será preenchido corretamente na próxima linha vazia da coluna A.
Em seguida, para capturar a primeira frase do PDF já limpa e organizada:
Range("B1048576").End(xlUp).Offset(1, 0).Value = WorksheetFunction.Clean(frasePDF.Text)Dessa forma, na coluna B será preenchida a frase extraída do PDF, com limpeza de espaços e caracteres especiais.
Entenda a lógica do preenchimento:
- End(xlUp) localiza a última linha preenchida
- Offset(1, 0) move para a próxima linha
Assim, novos dados não sobrescrevem informações já existentes
Opções de Preenchimento: Primeira Frase ou Todas as Sentenças
Agora que você já entendeu a lógica de preenchimento no Excel, temos dois cenários práticos que podem ser úteis dependendo da sua necessidade:
Opção 1: Capturar Apenas a Primeira Frase do PDF
Se o objetivo é pegar apenas uma informação rápida, por exemplo, a primeira frase do documento, você pode fazer isso diretamente, sem precisar percorrer todas as sentenças.
Exemplo:
Range("A1048576").End(xlUp).Offset(1, 0).Value = arqPasta
Range("B1048576").End(xlUp).Offset(1, 0).Value = WorksheetFunction.Clean(WorksheetFunction.Trim(docWord.Sentences(1).Text))Opção 2: Capturar Todas as Sentenças do PDF com Loop For Each
Caso você queira extrair todas as sentenças do PDF e registrar cada uma em uma nova linha da planilha, o ideal é utilizar o loop For Each.
Exemplo:
For Each frasePDF In docWord.Sentences
Range("A1048576").End(xlUp).Offset(1, 0).Value = arqPasta
Range("B1048576").End(xlUp).Offset(1, 0).Value = WorksheetFunction.Clean(frasePDF.Text)
Next frasePDFDessa forma, o VBA preenche uma linha para cada sentença do PDF, mantendo na coluna A o nome do arquivo e na coluna B o texto extraído, já limpo com as funções do Excel.
Quando Usar Cada Opção
- Use somente a primeira frase quando quiser um resumo rápido do documento, como um título ou uma informação principal.
- Use o For Each quando o objetivo for extrair o conteúdo completo do PDF e registrar cada frase em uma nova linha.
Ambos os métodos seguem a mesma lógica de preenchimento sem sobrescrever dados já existentes.
Conclusão - Como Ler Vários PDFs pelo VBA
Nesta aula, você aprendeu um passo a passo detalhado sobre como ler vários PDFs utilizando VBA, mesmo quando os arquivos contêm ou não tabelas.
Trabalhamos com a mesma base de arquivos da aula anterior e explicamos cada trecho do código para garantir que você compreenda o funcionamento de cada etapa.
Agora, com essa base, você está preparado para explorar e aplicar diversas funções do VBA para manipular textos, automatizar processos e expandir ainda mais suas soluções.
Use sua criatividade para ir além e criar projetos cada vez mais eficientes!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse nosso Canal do YouTube para mais vídeos!
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!
Posts mais recentes de VBA
- Como usar o Selenium no VBA para Automatizar Buscas na WebComo usar o Selenium no VBA para automação web no Excel. Aprenda passo a passo a instalar, configurar e capturar dados online com Selenium VBA + ChromeDriver.
- Preencher um Documento em Word com VBA: Guia CompletoAprenda a preencher um documento em Word com VBA usando dados do Excel. Tutorial prático para automatizar documentos como contratos e procurações.
- Planilha para Controle de Ações e IR 2.0 – Download Grátis e Guia CompletoBaixe grátis a Planilha para Controle de Ações e IR. Organize seus investimentos, calcule Imposto de Renda e acompanhe tudo com gráficos no Excel.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.







