前提・実現したいこと
VBAでユーザー定義コマンドを作成し、ワークシートに2地点間の住所から直線距離をGoogleApiから取得したいと考えております。
直線距離を求めるサンプルは見つけられなかったものの、走行距離を求めるサンプルを見つけることができました。
どうにかしてこのコードを参考に直線距離を求めようと思いましたが、VBA初心者である私にコードを書き換える能力などなく途方に暮れております。
VBAについて知識豊富の方、わたくしの説明をご理解していただける方いらっしゃいませんでしょうか?
よろしくお願いいたします。
該当のソースコード
Function DGMAP(origin As String, destination As String, distance As Boolean) As String 'http://stackoverflow.com/questions/10116301/google-maps-api-for-time-and-distance-data-access-vba Dim sXMLURL As String sXMLURL = "http://maps.googleapis.com/maps/api/directions/xml?origin=" _ & origin & "&destination=" & destination & "&sensor=false" Dim objXMLHTTP As MSXML2.ServerXMLHTTP60 Set objXMLHTTP = New MSXML2.ServerXMLHTTP60 With objXMLHTTP .Open "GET", sXMLURL, False .setRequestHeader "Content-Type", "application/x-www-form-URLEncoded" .Send End With 'Debug.Print objXMLHTTP.ResponseText Dim domResponse As DOMDocument60 Set domResponse = New DOMDocument60 domResponse.LoadXML objXMLHTTP.ResponseText Dim ixnStatus Set ixnStatus = domResponse.SelectSingleNode("//status") If ixnStatus.Text = "OK" Then Dim ixnDistance, ixnDuration Set ixnDistance = domResponse.SelectSingleNode("/DirectionsResponse/route/leg/distance/text") Set ixnDuration = domResponse.SelectSingleNode("/DirectionsResponse/route/leg/duration/text") End If If IsEmpty(ixnDistance) Then DGMAP = "Empty" Exit Function End If '距離(True) または時間(False) If distance = True Then DGMAP = Left(ixnDistance.Text, InStr(1, ixnDistance.Text, " ") - 1) Else DGMAP = ixnDuration.Text End If Set domResponse = Nothing Set objXMLHTTP = Nothing End Function
補足情報(FW/ツールのバージョンなど)
エクセルのVBAの質問であることはタグで分かりますので改めてタイトルに入れる必要はありません。タイトルには要件を書いてください。 https://teratail.com/help/question-tips#questionTips3-1
プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
mts10806様 大変失礼いたしました。タイトルおよびプログラムコードを修正いたしました。ご指摘ありがとうございます。

回答1件
あなたの回答
tips
プレビュー