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:
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:
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?
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.
Procure o que você quiser sobre Excel, VBA, Power BI ou Python:
Aprenda tudo de Excel para se tornar uma referência no Mercado de Trabalho
Leve os treinamentos da Hashtag para dentro da sua Empresa