Você sabia que é possível buscar endereços usando o Excel? Eu vou te mostrar como fazer isso com a API de CEP no VBA!
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! Hoje você vai ver como buscar endereços com VBA!
Para conseguir tal feito, nós vamos fazer uso de uma API de CEP no VBA chamada ViaCEP. Ela vai permitir com que você faça uma busca através do CEP e obtenha várias informações a respeito daquele local.
Nós temos um outro post no Blog de como usar API no VBA, que ajuda a entender o que vamos mostrar na aula de hoje. Seria recomendável que você assista essa aula antes do post de hoje, que vem a seguir.
E aí, vamos aprender a buscar CEP com VBA para implementar nos seus projetos?
Inicialmente já temos uma tabela montada para receber as informações que vão ser conseguidas com o sucesso da API. Veja-a abaixo:
Como funciona?
Preencheremos um CEP, com pontos e hífen, como normalmente temos para esse código postal.
Ao clicar no botão de atualizar, o nosso código vai funcionar e retornar as informações apresentadas, até a linha 10.
Ativando referências no VBA
A seguir temos um fator super importante para o desempenho da API da forma como esperamos na aula de hoje: teremos que ativar duas referências, pra ser mais específicos.
São elas as referências “Microsoft WinHTTP Services” (como na foto abaixo) e também a “Microsoft Scripting Runtime”. Veja:
Após ativá-las, poderemos partir para o código que vai desempenhar a API de CEP no VBA, que vai fazer a busca de endereços com VBA, e que está a seguir:
Sub APIViaCEP()
'https://viacep.com.br/
Dim requisicao As New WinHttpRequest
Dim resposta As Object
Dim url As String, parametros As String, cep As String
Range("B2:B10").ClearContents
' Tratamento do CEP
cep = Replace(Replace(Replace(Range("B1").Value, ".", ""), "-", ""), " ", "")
If Len(cep) > 8 Then Exit Sub
' Definir a URL e os parâmetros
url = "https://viacep.com.br/ws/"
parametros = cep & "/json/"
' Enviar a requisição
requisicao.Open "Get", url & parametros
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
Cells(2, 2).Value = resposta("logradouro")
Cells(3, 2).Value = resposta("complemento")
Cells(4, 2).Value = resposta("bairro")
Cells(5, 2).Value = resposta("localidade")
Cells(6, 2).Value = resposta("uf")
Cells(7, 2).Value = resposta("ibge")
Cells(8, 2).Value = resposta("gia")
Cells(9, 2).Value = resposta("ddd")
Cells(10, 2).Value = resposta("siafi")
Range("B:B").Columns.AutoFit
End Sub
Explicação do código em VBA:
Veja, abaixo, dois exemplos de CEPs pesquisados, com a API:
Observe que, para os dois casos, a API funcionou normalmente, e a coluna ficou com tamanhos diferentes, para caber as informações, sejam elas maiores ou menores.
Hoje você aprendeu a lidar com API no VBA! Mais especificamente falando buscar informações de CEP com VBA!
Entendeu como funciona a API, como é sua resposta, e viu um código que pode trazer as informações para o Excel!
Pôde realizar o tratamento de informações, manipular os dados conseguidos com a API, lidando com estruturas do VBA que lidamos em outras aulas: estrutura If, Tratamento de erros, funções de texto para verificação de dígitos.
Valeu, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA! Um abraço!
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.