私は特定の郵便番号の緯度と経度を取得しようとしています。これをVBAを使用してExcelワークシートに配置しようとしています。次のように私のコードは次のとおりです。appIE.Document.Body.innerHTMLの使い方
Private appIE As Object
Function GeoCode(sLocationData As String) As String
'//Dont want to open and close all day long - make once use many
If appIE Is Nothing Then
CreateIEApp
'// Creates a new IE App
'// if = nothing now then there was an error
If appIE Is Nothing Then
GeoCode = "Sorry could not launch IE"
Exit Function
Else
'// do nothing
End If
Else
'// do nothing
End If
'//clearing up input data
'sLocationData = Replace(sLocationData, ",", " ")
sLocationData = Replace(sLocationData, " ", "+")
sLocationData = Trim(sLocationData)
'//Build URL for Query
sLocationData = "http://maps.google.com/maps/geo?q=%20_" & sLocationData
'// go to the google web service and get the raw CSV data
'// CAUSES PROBLEM AS SPECIFIED BELOW
appIE.Navigate sLocationData
Do While appIE.Busy
Application.StatusBar = "Contacting Google Maps API..."
Loop
Application.StatusBar = False
On Error Resume Next
'// Parsing
GeoCode = appIE.Document.Body.innerHTML
GeoCode = Mid(GeoCode, InStr(GeoCode, ",") + 1, InStr(GeoCode, "/") - InStr(GeoCode, ",") - 2)
appIE = Nothing
End Function
Google MapsのAPI、このリンクあたりとして、JSON形式の値を返します。
http://maps.google.com/maps/geo?q=%20_400012
私はその後、
appIE.Document.Body.innerHTML
を使用してこの値を取得しようとすると、
と私が欲しいデータのその値を解析する。しかし、コードがappIE.Navigate sLocationData
に達する瞬間、
"geo"というファイルを保存するように求められます。保存して.txtファイルとして開くと、同じJSON形式の値が取得されますが、ワークシート自体の値が必要です。
これを行う方法はありますか?
ありがとうございます!
+1 xmlhttpより優れた自動化ie – brettdj