Function Dist(ByVal Lat1 As Double, ByVal Lon1 As Double, ByVal Lat2 As Double, ByVal Lon2 As Double) As Double
Lat1 = Rad(Lat1): Lon1 = Rad(Lon1): Lat2 = Rad(Lat2): Lon2 = Rad(Lon2)
Dist = ACos(Sin(Lat1) * Sin(Lat2) + Cos(Lat1) * Cos(Lat2) * Cos(Lon1 - Lon2)) * 6371
End Function
Private Function Rad(ByVal Deg As Double) As Double
Const K = 14964008 / 857374503: Rad = Deg * K
End Function
Private Function ACos(ByVal X As Double) As Double
On Error Resume Next
Const Pi÷2 = 122925461 / 78256779: ACos = Atn(-X / Sqr(1 - X * X)) + Pi÷2
End Function