PDF no VBA – Como Ler Tabelas em PDF Usando o VBA?

Sabia que é possível ler PDF no VBA? Já imaginou ler tabelas em PDF sem precisar copiar e colar ou ter nenhum trabalho com isso?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Alguma vez na vida você já precisou extrair uma tabela de um PDF e não sabia como? Nessa aula vamos te ensinar e mostrar como fazer isso usando um código em VBA!

Acompanhe a aula com a gente!

Tabela a importar

A tabela marcada em vermelha abaixo representa a tabela da qual queremos extrair informações, que está dentro do PDF. Observe:

PDF no VBA
Como extrair tabelas de um arquivo PDF

Código necessário para extrair tabelas PDF

Observe o código abaixo, que vai ser responsável por importar as informações do PDF para dentro do Excel:

Sub lerPDF()

Application.ScreenUpdating = False

Dim objWord As New Word.Application
Dim docWord As Word.Document

caminhoArq = "C:UsersdamorOneDriveHashtag (1)OnlineConteúdosPlanilhas2021VBA8-06 - Como Ler Tabelas em PDF Usando o VBA - Extrair Tabelas de um Arquivo PDFBradesco 1T21 - Apresentação de Resultados.pdf"

'objWord.Visible = True

Set docWord = objWord.Documents.Open(caminhoArq, False, True)


For linha = 1 To 11

   For coluna = 1 To 4

       Cells(linha, coluna).Value = WorksheetFunction.Clean(WorksheetFunction.Trim(docWord.Tables(1).Cell(linha, coluna).Range.Text))
   Next coluna

Next linha



docWord.Close
Set docWord = Nothing 

objWord.Quit
Set objWord = Nothing

Application.ScreenUpdating = True
End Sub

Explicação do código acima:

  • A primeira linha do código diz respeito à atualização de tela do Excel. Ou seja, desativamos a “piscada” de tela ao realizar ações com trocas de abas ou arquivos, e faz com que o código fique mais fuido.
  • Em seguida vamos dimensionar as variáveis referentes ao objeto que representará o programa do Word em si (appWord) e ao objeto que representará o arquivo em questão aberto (docWord)
  • “caminhoArq” vai ser uma String (texto) que vai armazenar o nome do nosso arquivo, em si
  • Vamos começar definindo “caminhoArq” com o caminho da nossa pasta em questão (OBS: colocar o caminho do computador relativo ao seu arquivo em PDF)
  • Vamos definir no começo que não queremos ver (visible = false) o word (appWord) abrindo
  • Vamos atribuir/”setar” a variável docWord para receber o objeto que será aberto (Documents.Open) através do word e do caminho representado por “caminhoArq”
  • Repare aqui que temos um 2º argumento como False para ConfirmConversions porque não queremos converter o nosso arquivo em PDF para DOC, e True para ReadOnly para abrir nosso arquivo como modo somente leitura, que demora menos para abrir e carregar o arquivo, e não queremos fazer nada com ele, de fato
  • Depois vamos começar um loop a partir de uma estrutura For para percorrer as linhas de 1 até 11, porque sabemos que a tabela em questão tem 11 linhas
  • Dentro de cada linha, vamos usar de uma outra estrutura de repetição For, que vai varrer da coluna 1 até a coluna 4, porque sabemos que a tabela tem 4 colunas
  • Estando em uma determinada linha e uma determinada coluna, dentro das possibilidades, vai ser passada para cada célula do Excel, de mesma linha e coluna respectivas, a partir da célula A1 o resultado da fórmula Clean e Trim, mostradas na videoaula, que equivalem às funções do Excel TIRAR e ARRUMAR, respectivamente, que vão tirar os caracteres que não saem na impressão, assim como os espaços a mais das palavras “puxadas” do PDF
  • Após pegar os valores de cada linha e coluna, iremos por boas práticas fechar o documento em word (docWord), e esvaziar a variável (nothing) para que ela não fique armazenada o tempo inteiro na memória do computador enquanto o arquivo está aberto no Excel, assim como faremos para a variável que representa o Word (appWord)
  • Por fim, iremos ativar atualização de tela do Excel que desativamos ao começo.
  • Fim do código

Ao final do nosso código PDF VBA, teremos o seguinte resultado no Excel:

Programação em VBA
Programação em VBA

Conclusão – PDF no VBA

O VBA é uma linguagem de programação que está muito relacionada com o Excel, então nós conseguimos automatizar diversos processo dentro do Excel para facilitar nosso trabalho.

Nessa aula eu vou te mostrar como fazer essa automação relacionada a um arquivo em PDF, ou seja, para automatizar a extração de tabelas dentro de um arquivo PDF.

Então você vai aprender a extrair tabelas do PDF com VBA, e claro, como ler essas tabelas em PDF usando o VBA.

Valeu, pessoal! Até a próxima! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel e VBA toda semana! Um abraço!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?