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!
Em resumo: o WebScraping com QueryTable no VBA importa dados de uma página web direto para o Excel de forma automática. Você cria uma QueryTable apontando para a URL, o VBA baixa o conteúdo da página e organiza as informações na planilha, facilitando a coleta recorrente de dados sem copiar e colar manualmente.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
O que você aprende neste vídeo
Resposta rápida: Nesta aula, o instrutor mostra o jeito mais fácil de buscar informações da web no Excel, trazer tabelas de um site direto para a planilha, sem programar. Ele usa o recurso de conexão do Excel (QueryTable), mostra como deixar o site como um parâmetro (para trocar a fonte sem mexer no código), limpar as conexões antigas e atualizar os dados.
Neste vídeo (16 min):
- 0:00 - O objetivo: buscar informações de um site direto para o Excel (web scraping).
- 2:00 - Trazer as tabelas do site para a planilha, de forma rápida e simples.
- 8:00 - Deixar o site como um parâmetro (para trocar a fonte sem mexer no código).
- 12:00 - Limpar as conexões antigas antes de criar a nova.
- 14:00 - Atualizar os dados e o método XMLHTTP.
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á.

Por padrão ele terá o nome de “Módulo 1”. Colocaremos a seguinte sub dentro dele:
<strong>Sub WebScraping()</strong>
<strong>Dim urlSite As String</strong>
<strong>Dim tabela As QueryTable</strong>
<strong>Dim tabelaExistente As QueryTable</strong>
<strong>For Each tabelaExistente In Sheets("Dados").QueryTables</strong>
<strong> tabelaExistente.Delete</strong>
<strong>Next</strong>
<strong>Sheets("Dados").Cells.Delete shift:=xlUp</strong>
<strong>urlSite = "https://www.w3schools.com/html/html_tables.asp"</strong>
<strong>Set tabela = Sheets("Dados").QueryTables.Add("URL;" & urlSite, Sheets("Dados").Range("A1"))</strong>
<strong>tabela.WebSelectionType = xlEntirePage</strong>
<strong>tabela.WebFormatting = xlWebFormattingNone</strong>
<strong>tabela.Refresh</strong>
<strong>End Sub</strong>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:

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

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!
Perguntas frequentes
1. O que é QueryTable no VBA?
QueryTable é um objeto do Excel que importa dados de fontes externas — páginas web, arquivos de texto ou bancos de dados — direto para a planilha. No webscraping, ela busca o conteúdo de uma URL e organiza os dados retornados em células.
2. QueryTable funciona em qualquer site?
Funciona bem em páginas com dados em tabelas HTML e conteúdo estático. Sites que carregam a informação por JavaScript depois do carregamento inicial podem não retornar os dados pela QueryTable — nesses casos, Selenium no VBA ou Python costumam ser mais indicados.
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!
Quer aprender mais sobre VBA com um Minicurso Gratuito?

