Sub
test()
Debug.Print GetDistance(
"Aachen"
,
"Köln"
)
End
Sub
Public
Function
GetDistance(start
As
String
, dest
As
String
)
Dim
firstVal
As
String
, secondVal
As
String
, lastVal
As
String
, URL
As
String
Dim
objHTTP
As
Object
, regex
As
Object
, matches
As
Object
Dim
tmpVal
As
String
secondVal =
"&destinations="
lastVal =
"&mode=car&language=pl&sensor=false"
Set
objHTTP = CreateObject(
"MSXML2.ServerXMLHTTP"
)
URL = firstVal & Replace(start,
" "
,
"+"
) & secondVal & Replace(dest,
" "
,
"+"
) & lastVal
objHTTP.Open
"GET"
, URL,
False
objHTTP.setRequestHeader
"User-Agent"
,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send (
""
)
If
InStr(objHTTP.responseText,
""
"distance"
" : {"
) = 0
Then
GoTo
ErrorHandl
Set
regex = CreateObject(
"VBScript.RegExp"
)
regex.Pattern =
""
"value"
".*?([0-9]+)"
: regex.Global =
False
Set
matches = regex.Execute(objHTTP.responseText)
tmpVal = Replace(matches(0).SubMatches(0),
"."
, Application.International(xlListSeparator))
GetDistance =
CDbl
(tmpVal)
Exit
Function
ErrorHandl:
GetDistance = -1
End
Function