Ler Qualquer API com VBA – Passo a Passo Completo

Quer aprender como ler qualquer API com VBA? Hoje eu vou te mostrar o passo a passo para fazer isso de forma eficiente!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail :

O que é uma API e como ela funciona no VBA?

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!

Pré-requisitos para ler uma API com VBA – 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:

  • Ir na guia Ferramentas
  • Referências…
  • Marcar a caixinha correspondente ao “Microsoft WinHTTP Services” (como na foto abaixo) e referente também ao “Microsoft Scripting Runtime”
  • OK
Ler Qualquer API com VBA

Criando o código VBA para ler uma API

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á.

Ler Qualquer API com VBA

Por padrão ele terá o nome de “Módulo 1”. Vamos mudar sua propriedade Name para “modModeloLerAPI”.

Colocaremos a seguinte sub dentro dele:

VBA
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
Ícone VBAVBA Impressionador

Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

Começar agoraSeta para a direita
Fundo VBATelas VBA

Explicando o código passo a passo

O código que criamos no VBA segue uma lógica simples:

Essa sequência permite que você adapte o mesmo código para qualquer API, alterando apenas a URL, os parâmetros e o tratamento dos dados recebidos.

  1. Declaração das variáveis
    • requisicao: um objeto do tipo WinHttpRequest, proveniente da biblioteca Microsoft WinHTTP Services (ativada anteriormente).
    • resposta: um objeto que armazenará o retorno da API.
    • url e parametros: variáveis do tipo String que armazenam, respectivamente, o endereço da API e os parâmetros da consulta.
  2. Limpeza de células
    Antes de buscar os dados, o código apaga o conteúdo do intervalo B2:B7 para garantir que os novos resultados não se misturem com informações anteriores.
  3. Definição da URL e parâmetros
    • url: recebe o endereço da API que será acessada — neste caso, https://calorieninjas.p.rapidapi.com/v1/nutrition.
    • parametros: recebe "?query=" & Cells(1, 2).Value, que concatena a consulta digitada pelo usuário na célula B1 com o parâmetro de busca exigido pela API.
  4. Abertura e configuração da requisição HTTP
    • O objeto requisicao é aberto no modo GET, combinando url e parametros.
    • São definidos no cabeçalho os parâmetros exigidos pela API (mostrados no vídeo), como a API Key.
  5. Envio da requisição
    O comando .Send envia a solicitação para a API.
  6. Tratamento de erros
    Uma estrutura If verifica se requisicao.Status é diferente de 200 (o código de resposta esperado para sucesso).
    • Se for diferente, o VBA exibe a mensagem “Erro” e encerra a execução com Exit Sub.
  7. Leitura da resposta JSON
    • resposta: armazena o retorno da API, que chega em formato JSON.
    • itens: declarado como Collection para armazenar a lista retornada pelo campo "items".
    • alimento: declarado como Dictionary para armazenar as propriedades do primeiro elemento da coleção.
  8. Preenchimento da planilha com os dados recebidos
    • B2 → serving_size_g
    • B4 → calories
    • B5 → carbohydrates_total_g
    • B6 → protein_g
    • B7 → fat_total_g
  9. Fim do código
    A rotina é concluída e os dados ficam visíveis na planilha.

Exemplo prático: Lendo calorias de alimentos pela API CalorieNinjas

Para testar, execute o código usando termos como “Banana” ou “Tomato” (tomate, em inglês) e veja o resultado preenchendo automaticamente as células.

Ler Qualquer API com VBA
Ler Qualquer API com VBA

Conclusão – Ler Qualquer API com VBA

O objetivo dessa aula foi te mostrar como você pode ler qualquer API com VBA, ou seja, como você vai pegar uma API que está precisando e vai fazê-la funcionar no VBA.

Isso é muito importante, pois sabendo esse passo inicial tudo vai ficar mais fácil na hora de usar suas APIs e ainda vai fazer com que você queira usá-las para facilitar seus trabalhos!

Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA! Um abraço!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Hashtag Treinamentos

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


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Posts mais recentes de VBA

Posts mais recentes da Hashtag Treinamentos