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

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:
<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:
- Uma mensagem será gerada na tela informando “Erro”.
- A sub vai ser abortada, pela instrução Exit Sub
- 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):

Conclusão – Cotação de Criptomoedas no VBA
Nessa aula você lidou com os seguintes conceitos:
- Tipos de dados no VBA
- Variáveis no VBA
- Caixa de mensagem no VBA
- Estrutura de repetição do tipo For
- Tratamento de erros no VBA
- Usando API no VBA
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!

