AW: VBA - Strecken aus Google Maps auslesen?
17.02.2009 09:21:00
Axel
Hallo Bernd,
die letzte Seite habe ich auch schon gefunden, allerdings gelingt mir die Implementierung noch nicht so ganz:
Option Explicit
Sub Entfernung()
Dim IEApp As Object
Dim IEDocument As Object
Dim blnGefunden As Boolean
Dim RouteStr As String
Dim Von As String
Dim Nach As String
Dim Von_PLZ As String
Dim Nach_PLZ As String
Dim Von_Ort As String
Dim Nach_Ort As String
Dim Von_Straße As String
Dim Nach_Straße As String
Dim IEDoc As Object
Dim strTeile As Variant
Dim i As Long
Dim msg As String
blnGefunden = False
Von_PLZ = ""
Von_Ort = "Frankfurt"
Von_Straße = ""
Nach_PLZ = ""
Nach_Ort = "Köln"
Nach_Straße = ""
Von = Adresse(Von_Straße, Von_Ort, Von_PLZ)
Nach = Adresse(Nach_Straße, Nach_Ort, Nach_PLZ)
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = False
IEApp.Navigate "http://maps.google.com/maps? _
saddr="
& Von & "&daddr=" & Nach & "&hl=de"
Do: Loop Until IEApp.Busy = False
Set IEDocument = IEApp.Document
Set IEDoc = IEApp.Document
strTeile = Split(IEDoc.Body.innerText, vbCrLf)
'Debug.Print IEDoc.Body.innerText
For i = LBound(strTeile) To UBound(strTeile)
If InStr(1, strTeile(i), "Minuten", vbTextCompare) > 0 Then
blnGefunden = True
msg = "Von: " & Von & vbNewLine & "Nach: " & Nach & vbNewLine & strTeile(i)
End If
Next
If blnGefunden = False Then
MsgBox "Die Adresse konnte nicht decodiert werden." & vbCr & "Falsche PLZ?"
Else
MsgBox msg
End If
IEApp.Quit
Set IEDocument = Nothing
Set IEApp = Nothing
End Sub
Function Adresse(Street As String, City As String, ZIP As String) As String
Dim HStr As String
If Street "" Then HStr = Street & ","
If ZIP "" Then HStr = HStr & ZIP & " "
If City "" Then HStr = HStr & City
Adresse = Trim(HStr)
End Function
Ich bekomme es nicht hin, dass die Eingabe in ein Textfeld erfolgt und dass dort dann "nur" dien Kilometer stehen.
Wenn ihr nen Tipp habt wäre ich dankbar, denn ich werde an diesem Problem wieder Stunden hängen. Aber immer noch besser als die Distanzen per Hand raus zu suchen :D
gruß
Axel