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
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 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:
- 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!
Hashtag Treinamentos
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.