Você está na página 1de 3

OBTENDO DADOS DA INTERNET COM EXCEL VBA

Tabelas:
Exemplo1:

Sub ImportandoDadosDeTabelas()

Dim ws As Worksheet
Dim qt As QueryTable ' => Tabela de Consulta
Dim URL As String

URL = "http://www.wiseowl.co.uk/courses/" ' => Site consultado onde encontram-se as tabelas


Set ws = Worksheets.Add
Set qt = ws.QueryTables.Add(Connection:="URL;" & URL, Destination:=Range("A1")) ' => cria
uma tabela de consulta

qt.Refresh ' => Esse método “refresh” faz a consulta aparecer na planilha

End Sub

Exemplo2:

Sub ImportandoDadosDeTabelas()

Dim ws As Worksheet
Dim qt As QueryTable ' => Tabela de Consulta
Dim URL As String

URL = “http://www.wiseowl.co.uk/courses/” ' => Site consultado onde encontram-se as tabelas


Set ws = Worksheets.Add ‘=> Abre uma nova guia
Set qt = ws. QueryTables.Add(Connection:= “URL;” & URL, Destination:=Range(“A1”)) ' => cria
uma tabela de consulta

With qt

.RefreshOnFileOpen = True
.Name = “WOLCourses” ' => Atribui um nome a tabela de consulta
.WebFormatting = xlWebFormattingRTF ' => Formata a saída da consulta
.WebSelectionType = xlSpecifiedTables ' => Define uma tabela específica
.webTables = “ 2, 3 ” ' => As tabelas são conhecidas por números na sequência que aparecem
.Refresh ‘=>esse método “refresh” faz a consulta aparecer na planilha

End With

End Sub
Exemplo3:

Sub ImportandoDadosDeTabelas()

Dim qt As QueryTable ' => Tabela de Consulta


Dim URL As String

URL = "http://www.wiseowl.co.uk/courses/" ' => Site consultado onde encontram-se as tabelas


'Worksheets.Add ' => Abre uma nova guia, caso queiramos esse resultado
Set qt = ActiveSheet.QueryTables.Add(Connection:="URL;" & URL, Destination:=Range("A1"))
'=> cria uma tabela de consulta

With qt
.RefreshOnFileOpen = True
.Name = "WOLCourses" ' => Atribui um nome a tabela de consulta
.WebFormatting = xlWebFormattingRTF ' => Formata a saída da consulta
.WebSelectionType = xlSpecifiedTables ' => Define uma tabela específica
.WebTables = "2" ' => As tabelas são conhecidas por números na sequência que aparecem
.Refresh '=>esse método “refresh” faz a consulta aparecer na planilha
End With

End Sub

Solicitação HTTP:
Habilitar as bibliotecas:

- Microsoft Office 16.0 Object Library


- Microsoft HTML Object Library
- Microsoft XML, v6.0

Exemplo1:

Option Explicit

Sub SolicitacaoHTTP()

Dim XMLPage As New MSXML2.XMLHTTP60


Dim HTMLDoc As New MSHTML.HTMLDocument
Dim HTMLTables As MSHTML.IHTMLElementCollection

XMLPage.Open "GET", "https://x-rates.com/table/?from=GBP&amount=3", False


XMLPage.send
HTMLDoc.body.innerHTML = XMLPage.responseText
Set HTMLTables = HTMLDoc.getElementsByTagName("table")

Debug.Print HTMLTables.Length

End Sub
Exemplo2:

Option Explicit

Sub SolicitacaoHTTP()

Dim XMLPage As New MSXML2.XMLHTTP60


Dim HTMLDoc As New MSHTML.HTMLDocument

Dim HTMLTable As MSHTML.IHTMLElement


Dim HTMLTables As MSHTML.IHTMLElementCollection

XMLPage.Open "GET", "https://x-rates.com/table/?from=GBP&amount=3", False


XMLPage.send
HTMLDoc.body.innerHTML = XMLPage.responseText

Set HTMLTables = HTMLDoc.getElementsByTagName("table")

For Each HTMLTable In HTMLTables

Debug.Print HTMLTable.className

Next HTMLTable

End Sub

Exemplo3:

Option Explicit

Sub SolicitacaoHTTP()

Dim XMLPage As New MSXML2.XMLHTTP60


Dim HTMLDoc As New MSHTML.HTMLDocument
Dim HTMLTable As MSHTML.IHTMLElement
Dim HTMLTables As MSHTML.IHTMLElementCollection
Dim HTMLRow As MSHTML.IHTMLElement

XMLPage.Open "GET", "https://x-rates.com/table/?from=GBP&amount=3", False


XMLPage.send
HTMLDoc.body.innerHTML = XMLPage.responseText

Set HTMLTables = HTMLDoc.getElementsByTagName("table")

For Each HTMLTable In HTMLTables


Debug.Print HTMLTable.className

For Each HTMLRow In HTMLTable.getElementsByTagName("td")


‘O objeto HTMLTable como “MSHTML.IHTMLElement” não apresenta através do intelisense a propriedade –
getElementsByTagName("xxx") -, mas aceita sem problemas.

Debug.Print vbTab & HTMLRow.innerText


Next HTMLRow

Next HTMLTable

End Sub

Você também pode gostar