Quer aprender como ler qualquer API com VBA? Hoje eu vou te mostrar o passo a passo para fazer isso de forma eficiente!
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 vou te mostrar como ler informações de API com VBA!
Uma API nada mais é do que um programa/sistema em que você pode fazer requisições de informações com base em um parâmetro.
No nosso exemplo vamos ter uma API que traz as informações calorias de alimentos, então você vai passar para a API o nome do alimento e ela vai retornar essas informações calóricas.
Acontece que essas APIs geralmente fornecem os resultados no formato json, então podemos entrar no git hub para baixar o Json converter (conversor de json).
Isso vai facilitar muito a sua vida, pois ele vai transformar esse resultado em uma forma que você consiga entender e já fica pronto para usar!
Além disso vamos precisar da biblioteca Microsoft Scriping Runtime e da biblioteca WinHTTP Services no seu VBA para consultar API!
E aí, vamos aprender como fazer a requisição para API? Vem comigo que eu te ensino!
Ativando referências no VBA
Precisaremos utilizar uma biblioteca específica do Excel/VBA para nos auxiliar na aula de hoje. Portanto, precisaremos ativá-la para fazer esses procedimentos a seguir.
Precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.
Logo após você terá, com o VBA aberto, que:
Inserindo um Módulo no VBA
Para criar um código dentro de um módulo, precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.
Como não temos nenhum módulo destinado ao tema da aula de hoje, e por questão de organização, vamos criar um módulo à parte.
Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.
Por padrão ele terá o nome de “Módulo 1”. Vamos mudar sua propriedade Name para “modModeloLerAPI”.
Colocaremos a seguinte sub dentro dele:
Sub testeLerAPI()
'https://rapidapi.com/calorieninjas/api/calorieninjas/
Dim requisicao As New WinHttpRequest
Dim resposta As Object
Dim url As String, parametros As String
Range("B2:B7").ClearContents
' Definir a URL e os parâmetros
url = "https://calorieninjas.p.rapidapi.com/v1/nutrition"
parametros = "?query=" & Cells(1, 2).Value
' Enviar a requisição
requisicao.Open "Get", url & parametros
requisicao.SetRequestHeader "X-RapidAPI-Key", "5da6f65d38mshe9c3f30892c766ap1f913bjsnfc5107da89eb"
requisicao.SetRequestHeader "X-RapidAPI-Host", "calorieninjas.p.rapidapi.com"
requisicao.Send
' Tratamento de erros
If requisicao.Status <> 200 Then
MsgBox "Erro: " & requisicao.ResponseText
Exit Sub
End If
' Converter o JSON
Set resposta = JsonConverter.ParseJson(requisicao.ResponseText)
' Tratar as informações
Dim itens As Collection
Set itens = resposta("items")
Dim alimento As Dictionary
Set alimento = itens(1)
Cells(2, 2).Value = alimento("serving_size_g")
Cells(4, 2).Value = alimento("calories")
Cells(5, 2).Value = alimento("carbohydrates_total_g")
Cells(6, 2).Value = alimento("protein_g")
Cells(7, 2).Value = alimento("fat_total_g")
End Sub
Comentários a respeito do código acima:
Veja o funcionamento do código para os exemplos de “Banana”, e “Tomato” (tomate, em inglês):
Nessa aula você lidou com os seguintes conceitos:
Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA! Um abraço!
Para acessar outras publicações de VBA, clique aqui!
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.