Meu IP

Para consultar o seu IP público atual usando VBA, você pode utilizar APIs externas que fornecem esse serviço. Uma das APIs mais simples para essa finalidade é a “http://api.ipify.org“, que retorna o IP público do usuário que fez a solicitação. Este serviço é gratuito e não requer uma chave API.




Function ConsultarIPAtual() As String
    Dim httpObject As Object
    Set httpObject = CreateObject("MSXML2.XMLHTTP")

    ' URL da API ipify
    Dim url As String
    url = "http://api.ipify.org"

    ' Enviar uma solicitação GET
    httpObject.Open "GET", url, False
    httpObject.Send

    ' Verificar se a solicitação foi bem-sucedida
    If httpObject.Status = 200 Then
        ' Retorna o IP atual
        ConsultarIPAtual = httpObject.responseText
    Else
        ' Retorna uma mensagem de erro
        ConsultarIPAtual = "Erro na solicitação: " & httpObject.Status
    End If

    Set httpObject = Nothing
End Function

Caso queira receber esse arquivo Excel, contendo essa função, é só enviar um e-mail
solicitando para o endereço
marmitanao@gmail.com

CEPs

Chamar uma API externa para consultar os CEPs de uma cidade usando VBA pode ser realizado através de APIs públicas disponíveis. Uma das APIs que você pode usar para este propósito é a ViaCEP, que permite consultar informações de CEPs no Brasil.



Function ConsultarCEPsPorCidade(CEP As String) As String
    Dim httpObject As Object
    Set httpObject = CreateObject("MSXML2.XMLHTTP")

    Dim url As String
    url = "https://viacep.com.br/ws/" & CEP & "/json/"

    httpObject.Open "GET", url, False
    httpObject.Send

    If httpObject.Status = 200 Then
        ConsultarCEPsPorCidade = httpObject.responseText
    Else
        ConsultarCEPsPorCidade = "Erro na solicitação: " & httpObject.Status
    End If

    Set httpObject = Nothing
End Function

Sub ProcessarRespostaJSON()
    Dim CEP As String
    Dim resposta As String
    Dim linhas() As String
    Dim partes() As String
    Dim linha As String
    Dim i As Integer

    CEP = ThisWorkbook.Sheets(1).Range("A1").Value

    resposta = ConsultarCEPsPorCidade(CEP)

    ' Quebrar a resposta em linhas (cada CEP)
    linhas = Split(resposta, "},{")

    ' Processar cada linha
    For i = LBound(linhas) To UBound(linhas)
        linha = linhas(i)
        linha = Replace(linha, "{", "")
        linha = Replace(linha, "}", "")
        linha = Replace(linha, """", "")
        linha = Replace(linha, "[", "")
        linha = Replace(linha, "]", "")

        partes = Split(linha, ",")
        
        ' Atribuir os valores nas células
        ThisWorkbook.Sheets(1).Cells(1 + 3, 1).Value = ExtrairValorJSON(partes, "cep")
        ThisWorkbook.Sheets(1).Cells(2 + 3, 1).Value = ExtrairValorJSON(partes, "logradouro")
        ThisWorkbook.Sheets(1).Cells(3 + 3, 1).Value = ExtrairValorJSON(partes, "complemento")
        ThisWorkbook.Sheets(1).Cells(4 + 3, 1).Value = ExtrairValorJSON(partes, "bairro")
        ThisWorkbook.Sheets(1).Cells(5 + 3, 1).Value = ExtrairValorJSON(partes, "localidade")
        ThisWorkbook.Sheets(1).Cells(6 + 3, 1).Value = ExtrairValorJSON(partes, "uf")
        ThisWorkbook.Sheets(1).Cells(7 + 3, 1).Value = ExtrairValorJSON(partes, "ibge")
        ThisWorkbook.Sheets(1).Cells(8 + 3, 1).Value = ExtrairValorJSON(partes, "gia")
        ThisWorkbook.Sheets(1).Cells(9 + 3, 1).Value = ExtrairValorJSON(partes, "ddd")
        ThisWorkbook.Sheets(1).Cells(10 + 3, 1).Value = ExtrairValorJSON(partes, "saifi")
    Next i
End Sub

Function ExtrairValorJSON(partes() As String, chave As String) As String
    Dim parte As Variant
    For Each parte In partes
        If InStr(parte, chave) > 0 Then
            ExtrairValorJSON = Trim(Split(parte, ":")(1))
            Exit Function
        End If
    Next parte
    ExtrairValorJSON = ""
End Function





Cole o código no módulo que você criou no Editor do VBA. Insira o nome da cidade na célula A1 e a sigla do estado na célula A2. Execute a sub-rotina ConsultarCEPs. Este exemplo faz uma solicitação GET para a API ViaCEP e retorna os dados em formato JSON, que será exibido na célula A3. Dependendo do volume de dados, você pode precisar de um processamento adicional para extrair e formatar as informações de maneira adequada para a sua necessidade.

Caso queira receber esse arquivo Excel, contendo essa função, é só enviar um e-mail
solicitando para o endereço
marmitanao@gmail.com