はじめに

Excelで作った住所録の地図を表示する場合、ブラウザを起動し、Googleマップのような地図ページを表示し、住所をコピペして検索するのが通常の操作です。複数の住所の地図を順次見たい場合は、ウィンドウの切替と住所のコピペとを、その都度繰り返す必要があって面倒ですよね。

今回は、住所録のワークシート内にブラウザオブジェクトを埋め込み、Google Maps APIを利用して地図を表示させます。Excel内で住所の入ったセルをダブルクリックするだけで地図を切り替えることができるので、ウィンドウの切替も住所のコピペも不要です。もちろん、地図の東西南北への移動、ズームイン/アウトも可能です。

動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。

Excel VBAでWebサービス - Excelでヤフオクの商品情報を検索しよう
Excel VBAでWebサービス - Excelでフィードを読もう(RSS2.0編)
Excel VBAでWebサービス - ExcelからWikipediaを引いてみよう
Excel VBAでWebサービス - Amazonで様々な商品情報を検索しよう
Excel VBAでWebサービス - Amazonで書籍情報を検索してみよう
Excel VBAでWebサービス - ExcelでTwitterと連携する 完成編
Excel VBAでWebサービス - ExcelでTwitterと連携する2
Excel VBAでWebサービス - ExcelでTwitterと連携する
Excel VBAでWebサービス - YouTube APIで動画を検索しよう
Excel VBAでWebサービス - Excelで書籍情報を検索・取得してみよう
Excel VBAでWebサービス - MSNマネーから株価の推移を取得しよう
Excel VBAでWebサービス - 天気予報を取得してみよう
Excel VBAでWebサービス - ExcelでJScriptの機能を利用しよう
Excel VBAでWebサービス - Excelでフィードを読もう(RSS1.0編)

図1.完成サンプル

住所から緯度・経度を取得する

Google Maps API Web サービスを利用することにより、住所から緯度・経度を取得(ジオコーディング)することができます。URLは下記の通りです。

http://maps.google.com/maps/api/geocode/xml

1日に取得できる位置情報は2,500件までという制限があります。また、Googleマップと組み合わせない、単独での利用は禁止されていますので注意してください。

リクエスト引数のうち、必須のものは以下の通りです。なお、住所は日本語なので、例によってURLエンコードが必要です。

表1.必須のリクエスト引数

引数名 内容 設定例
address ジオコーディングしたい住所 東京都新宿区西新宿
sensor 場所センサー搭載のデバイスか否か false(PCからなので)

レスポンス項目のうち、今回利用するものは以下の通りです。

表2.今回利用するレスポンス項目

要素 親要素 説明
GeocodeResponse (なし) ルート要素
result GeocodeResponse 結果の情報
geometry result 地理情報
location geometry 位置情報
lat location 緯度(北緯はプラス、南緯はマイナス)
lng location 経度(東経はプラス、西経はマイナス)