Blog

Postado em em 23 de julho de 2022

WebScraping com QueryTable – Informações na WEB com VBA

Hoje eu quero te mostrar o webscraping com QueryTable para facilitar a busca de informações na web com o VBA!

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:

Fala, Impressionadores! Na aula de hoje eu quero te mostrar como buscar informações na web com VBA de uma forma muito fácil e rápida!

Vamos buscar informações na web com QueryTable. Como exemplo vamos entrar em um site e trazer uma tabela em HTML (não vamos tratar sobre esse tema).

Com isso nós vamos poder trazer tabela para o Excel de uma forma muito rápida, podendo escolher se quer uma tabela específica, se quer todas as tabelas ou todas as informações da página.

Para essa aula nós vamos utilizar o webscraping com selenium que vai permitir com que o VBA faça a interação com o seu navegador e possibilite a aquisição dessas informações.

Vamos falar também sobre declaração de variáveis no VBA, estrutura de repetição for each e muito mais!

E aí vamos aprender fazer o webscraping com QueryTable para deixar suas buscas muito mais rápidas e eficientes?

Inserindo um Módulo no VBA

Para criar um código dentro do VBA geralmente criamos um módulo. Para criá-lo precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.

Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.

0 8

Por padrão ele terá o nome de “Módulo 1”. Colocaremos a seguinte sub dentro dele:

Sub WebScraping()

Dim urlSite As String
Dim tabela As QueryTable
Dim tabelaExistente As QueryTable

For Each tabelaExistente In Sheets("Dados").QueryTables
    tabelaExistente.Delete
Next

Sheets("Dados").Cells.Delete shift:=xlUp

urlSite = "https://www.w3schools.com/html/html_tables.asp"

Set tabela = Sheets("Dados").QueryTables.Add("URL;" & urlSite, Sheets("Dados").Range("A1"))

tabela.WebSelectionType = xlEntirePage
tabela.WebFormatting = xlWebFormattingNone
tabela.Refresh

End Sub

Explicação do código acima:

  • Vamos dimensionar:
    • A variável urlSite como uma variável do tipo String (texto)
    • A variável tabela como uma variável do tipo QueryTable (conexão de tabela)
    • A variável tabelaExistente como uma variável do tipo QueryTable (conexão de tabela)
  • Usar de uma estrutura de repetição do tipo For Each, que vai utilizar da variável tabelaExistente como um objeto individual (parte) percorrer todas as QueryTables (grupo de tabelas-conexões; grupo). A estrutura fará a seguinte ação:
    • Apagará a tabelaExistente, caso haja
    • Percorrerá todas as QueryTables do arquivo
  • Depois de limpar todas as conexões, vamos limpar (Delete) as células presentes na aba “Dados”, colocando os dados para cima (xlUp) quando fizer a exclusão das células
  • Armazenar na variável urlSite o site a ser acessado, que vai ser o “https://www.w3schools.com/html/html_tables.asp
  • Vamos configurar a variável tabela para representar o objeto que vai ser adicionado (do inglês add) a tabela-conexão feita na aba “Dados”, na célula A1, que vai ser obtida da URL dada pela variável urlSite
  • Vamos configurar a tabela para fazer o tipo de seleção da página inteira
  • A tabela-conexão resultante vai pegar o conteúdo da página inteira sem a formatação original
  • Atualizar (refresh, em inglês) tabela
  • Se encerra o código

OBS: Para entender melhor sobre declaração de variáveis, recomendamos esse outro post aqui do Blog.

OBS1: Para entender melhor sobre a estrutura de repetição For Each, recomendamos esse outro post do Blog.

Observe a nossa planilha antes de rodar o código:

WebScraping com QueryTable

Agora, após rodar o código para buscar informações na web com VBA:

WebScraping com QueryTable

Conclusão – WebScraping com QueryTable

Nessa aula você lidou com:

  • Ambiente do VBA
  • Webscraping com VBA
  • Webscraping com QueryTable
  • Trazer tabela para o Excel
  • Pegar tabelas de uma página da internet
  • Declaração de variáveis no VBA

Até a próxima, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA!

Hashtag Treinamentos

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


Quer aprender mais sobre VBA com um Minicurso Gratuito?


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