Cotação de Criptomoedas no VBA Usando APIs

Quer aprender como obter a cotação de criptomoedas no VBA de forma automática usando APIs para melhorar seus projetos?

Em resumo: para obter a cotação de criptomoedas no VBA, você consome uma API pública fazendo uma requisição HTTP pelo próprio VBA, recebe a resposta em JSON e extrai o preço da moeda desejada para gravar na planilha — tudo de forma automática e atualizável sempre que rodar a macro.

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 de VBA, o instrutor ensina a buscar a cotação de criptomoedas usando APIs direto no Excel. Ele mostra como pegar o link e a chave da API, fazer a requisição pelo VBA, tratar a resposta (que vem em JSON, lida com um Dictionary) e jogar a cotação na célula, criando uma função que busca o preço atualizado de qualquer cripto.

Neste vídeo (17 min):

  • 0:00 - O objetivo: buscar a cotação de criptomoedas com APIs, usando VBA.
  • 3:00 - Pegar o link e a chave da API.
  • 9:00 - Fazer a requisição pela API no VBA.
  • 12:00 - Tratar a resposta (o JSON) com um Dictionary.
  • 15:00 - Jogar a cotação na célula (a função de buscar cotação).

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala, Impressionadores! Na aula de hoje eu quero te mostrar como obter a cotação de criptomoedas no VBA.

Vamos estar usando API no VBA que é a API coinranking do site de APIs RapidAPI. Esse é um site que possui diversas APIs para você utilizar.

Então basta ler a documentação para entender do que se trata e começar a utilizar a API desejada.

A ideia dessa aula é te mostrar como buscar cotações de criptomoedas usando o VBA utilizando essa API.

Aqui no canal nós temos uma aula sobre API para que você consiga entender como usar o VBA para ler informações de qualquer API, então se quiser saber um pouco mais sobre o assunto dá uma olhada nessa aula que vai te ajudar!

Agora vamos pra aula que o conteúdo de hoje está irado! Bora aprender mais uma das automações no VBA? Então vem comigo que eu vou te ensinar!

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
Cotação de Criptomoedas no VBA

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.

Í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

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

Cotação de Criptomoedas no 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
<strong>Sub LerAPICriptomoedas()</strong>
<strong>'https://rapidapi.com/Coinranking/api/coinranking1/</strong>

<strong>Dim requisicao As New WinHttpRequest</strong>
<strong>Dim resposta As Object</strong>
<strong>Dim url As String, parametros As String</strong>

<strong>Range("B2:B4").ClearContents</strong>
 
<strong>' Definir a URL e os parâmetros</strong>
<strong>url = "https://coinranking1.p.rapidapi.com/coin/"</strong>
<strong>parametros = Range("B1").Value & "?referenceCurrencyUuid=yhjMzLPhuIDl&timePeriod=24h"</strong>
 
<strong>' Enviar a requisição</strong>
<strong>requisicao.Open "Get", url & parametros</strong>
<strong>requisicao.SetRequestHeader "X-RapidAPI-Key", "5da6f65d38mshe9c3f30892c766ap1f913bjsnfc5107da89eb"</strong>
<strong>requisicao.SetRequestHeader "X-RapidAPI-Host", "coinranking1.p.rapidapi.com"</strong>
<strong>requisicao.Send</strong>

<strong>' Tratamento de erros</strong>
<strong>If requisicao.Status <> 200 Then</strong>
<strong>    MsgBox "Erro: " & requisicao.ResponseText</strong>
<strong>    Exit Sub</strong>
<strong>End If</strong>

<strong>' Converter o JSON</strong>
<strong>Set resposta = JsonConverter.ParseJson(requisicao.ResponseText)</strong>

<strong>' Tratar as informações</strong>
<strong>Dim data As Dictionary</strong>
<strong>Set data = resposta("data")</strong>

<strong>Dim coin As Dictionary</strong>
<strong>Set coin = data("coin")</strong>

<strong>Range("B2").Value = coin("symbol")</strong>
<strong>Range("B3").Value = coin("name")</strong>
<strong>Range("B4").Value = coin("price")</strong>

<strong>End Sub</strong>

Comentários a respeito do código acima:

  • Dimensionar:
    • a variável “requisicao” como sendo do tipo um novo objeto do tipo WinHttpRequest, que é um objeto da biblioteca que ativamos, a “Microsoft WinHTTP Services”
    • a variável “resposta” como um objeto
    • as variáveis “url” e “parâmetros” do tipo texto
    • Para entender melhor sobre os tipos de dados no VBA, visite esse link oficial
  • Limpar o conteúdo do intervalo de células de B2 a B4
  • Armazenar na variável “url” o texto que corresponde ao site exatamente que vamos acessar para pegar as informações, que é https://coinranking1.p.rapidapi.com/coin/
  • Armazenar na variável “parametros” o texto Range(“B1”).Value & “?referenceCurrencyUuid=yhjMzLPhuIDl&timePeriod=24h”, que vai compreender o parâmetro informado específico que vamos tentar pegar as informações. Esse parâmetro vai ser o que vamos pesquisar diretamente na “url” especificada
  • Abrir o objeto que é representado pela variável “requisicao” passando os argumentos “url” e “parametros”, dos quais ela vai pegar informações (get)
  • Passar para o cabeçalho da “requisicao” os parâmetros “padrão” informados pela API, como mostramos no vídeo (em duas linhas diferentes)
  • Dar o comando de “enviar” requisição, que é de fato quando o VBA envia a requisição para o site
  • Com um simples tratamento de erro, vamos verificar através de uma estrutura If se a propriedade “Status” da variável “requisicao” é diferente de 200 (porque essa resposta é a esperada quando uma resposta válida é retornada pela API). Caso o “Status” seja diferente de 200:
  • Configurar a variável “resposta” para receber o objeto da biblioteca JSON, que vai ser responsável por retornar a resposta, em texto, da “requisicao”
  • Dimensionar a variável “data” como uma variável do tipo “Dictionary”, da biblioteca JSON
  • Configurar a variável “data” para receber o conjunto de unidades representadas pelo grupo “data”, como mostrado em vídeo, que é um dicionário de termos da variável “resposta”
  • Dimensionar a variável “coin” como uma variável do tipo “Dictionary”, da biblioteca JSON
  • Configurar a variável “coin” para ser o conjunto de unidades representadas pelo grupo “coin”, que é um dicionário de termos da variável “data” (um dicionário dentro do outro, da API)
  • Armazenar:
    • Na célula de linha 2 e coluna 2 o valor resultante da consulta da variável “coin”, buscando o item/termo “symbol”
    • Na célula de linha 3 e coluna 2 o valor resultante da consulta da variável “coin”, buscando o item/termo “name”
    • Na célula de linha 4 e coluna 2 o valor resultante da consulta da variável “coin”, buscando o item/termo “price”
  • Se encerra o código

Veja o funcionamento do código para os exemplos de “razxDUgYGNAdQ (UUID da criptomoeda Ethereum):

Cotação de Criptomoedas no VBA

Conclusão – Cotação de Criptomoedas no VBA

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!

Perguntas frequentes

1. Como buscar cotação de criptomoedas no Excel?

Use o VBA para fazer uma requisição HTTP a uma API de cotações, receba os dados em JSON e extraia o preço da moeda para a planilha. Assim os valores podem ser atualizados automaticamente sempre que a macro for executada.

2. Preciso pagar para usar uma API de criptomoedas?

Muitas APIs de cotação têm planos gratuitos com limite de requisições, suficientes para uso pessoal e testes. Para volumes maiores ou dados em tempo real com alta frequência, costuma ser necessário um plano pago.

Hashtag Treinamentos

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


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