Aquí pongo una función que acabo de hacer que lo saca:
Public Function IPPublica() As String
Dim data As String
Dim data2 As String
If Dir("C:\ipconfig.txt") = "" Then Kill "C:\ipconfig.txt"
Shell "ipconfig /all > C:\ipconfig.txt"
Open "C:\ipconfig.txt" For Binary As #1
data = Space(LOF(1))
Get #1, , data
Close #1
data = Mid(data, InStr(1, data, "Servidores DNS . . . . . . . . . .: "), Len(data))
data2 = InStr(1, data, "Servidores DNS . . . . . . . . . .: ")
IPPublica = Trim(Mid(data, data2 + 36, InStr(1, data, vbCrLf) - 38))
End Function
Es algo cutre pero funciona