Blog

Postado em em 13 de agosto de 2021

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?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador