
Obter o endereço IP e sua localização usando apenas VBA é um pouco mais complexo, pois o VBA não possui funcionalidades nativas para determinar a localização geográfica de um endereço IP. No entanto, você pode usar VBA para fazer uma solicitação a um serviço web externo que fornece tanto o IP quanto a localização. Um exemplo de serviço que oferece isso é o ip-api.com
.
Sub ObterIPeLocalizacao()
Dim httpObject As Object
Set httpObject = CreateObject("MSXML2.XMLHTTP")
' Enviar uma solicitação para o serviço que retorna o endereço IP e a localização
httpObject.Open "GET", "http://ip-api.com/json", False
httpObject.Send
' Verificar se a solicitação foi bem-sucedida
If httpObject.Status = 200 Then
Dim resposta As String
resposta = httpObject.responseText
' Usar uma função para extrair o IP e a localização do JSON
Dim IP As String, cidade As String, regiao As String, pais As String
IP = ExtrairValorJSON(resposta, "query")
cidade = ExtrairValorJSON(resposta, "city")
regiao = ExtrairValorJSON(resposta, "regionName")
pais = ExtrairValorJSON(resposta, "country")
' Escrever o resultado na célula A1
ThisWorkbook.Sheets(1).Range("A1").Value = "IP: " & IP & " - Localização: " & cidade & ", " & regiao & ", " & pais
Else
ThisWorkbook.Sheets(1).Range("A1").Value = "Não foi possível obter as informações"
End If
Set httpObject = Nothing
End Sub
Function ExtrairValorJSON(jsonString As String, chave As String) As String
Dim inicio As Integer, fim As Integer
chave = """" & chave & """:"""
inicio = InStr(jsonString, chave)
If inicio > 0 Then
inicio = inicio + Len(chave)
fim = InStr(inicio, jsonString, """")
ExtrairValorJSON = Mid(jsonString, inicio, fim - inicio)
Else
ExtrairValorJSON = ""
End If
End Function

Abra o Excel e pressione ALT + F11 para abrir o Editor do VBA.
No menu “Inserir”, escolha “Módulo” para criar um novo módulo.
Cole o código acima no módulo.
Execute a sub-rotina ObterIPeLocalizacao.
Este código faz uma solicitação ao ip-api.com, que retorna um JSON com informações sobre o IP, incluindo localização (cidade, região e país). A função ExtrairValorJSON é usada para obter esses dados do JSON. O resultado é então escrito na célula A1 da primeira folha.
Note que este método depende de um serviço web externo, que pode ter limitações de uso (como um número máximo de solicitações gratuitas por minuto) e pode não funcionar se o computador estiver atrás de um firewall ou proxy que bloqueie a solicitação HTTP. Além disso, os dados de localização podem não ser precisos para todos os IPs
Caso queira receber esse arquivo Excel, contendo essa função, é só enviar um e-mail
solicitando para o endereço
marmitanao@gmail.com