Blog

Postado em em 3 de setembro de 2022

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?

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

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:

Sub LerAPICriptomoedas()
'https://rapidapi.com/Coinranking/api/coinranking1/

Dim requisicao As New WinHttpRequest
Dim resposta As Object
Dim url As String, parametros As String

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

Dim coin As Dictionary
Set coin = data("coin")

Range("B2").Value = coin("symbol")
Range("B3").Value = coin("name")
Range("B4").Value = coin("price")

End Sub

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!

Hashtag Treinamentos

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


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

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador