ExcelにBing Mapsを挿入し、Google Places APIで取得した住所から店舗の分布地図を作成:VBA/マクロ便利Tips(3/3 ページ)
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、Geocoding APIとGoogle Places APIを利用して、指定した住所から半径1Km範囲内にあるコンビニエンスストアを表示する方法などを解説。
ExcelのメニューからBing Mapsを挿入し、コンビニの位置を表示する
Excel 2013の最新版では、Excelのメニューから[挿入]を選択すると、「アプリ」の中に「Bing Maps」が表示されているはずだ(図8)。
もし、「Bing Maps」が表示されていない方は、図8の「ストア」を選択し、表示される画面の「検索欄」に「Bing Maps」と入力する(図9)。
すると、「Bing Maps」が表示されるので、「追加」をクリックする(図10)。
これ以降の処理は、Excelメニューの「Bing Maps」のアイコンをクリックした場合と同じ処理になる。
「Bing Maps」アイコンをクリックすると、図11のように「Bing Maps」が表示され、「Insert Sample Data」と表示されるので、右隅上の「×」アイコンで消しておく。
仮に「Insert Sample Data」をクリックすると、表1のようなデータが挿入され、指定された場所(State)に円グラフが表示される。
State | Revenue | Expense |
---|---|---|
Seattle | 70 | 20 |
Berlin | 85 | 55 |
London | 60 | 40 |
表1から分かるように、1列目には「場所」で文字列、2列目と3列目には数値を入れるようになっている。項目名の変更は自由だが、このデータ型を間違えるとデータエラーが表示される。
ただし、項目名は必ずしも3個限定というわけではない。図7を見ても分かるように「文字列」の1列だけのデータ項目でもOKだ。最大で3項目まで、データ型には必ず従うと覚えておくといい。
では、次に、図11の上部で赤い○で囲まれている、「Filter」アイコンをクリックする。すると「Select Data」と表示されるので、これをクリックする(図12)。
「データ選択」のダイアログが表示されるので、図7の「A1:A21」までを選択しておく。データはセル「A12」までしかないのだが、検索結果の最大件数が20件まで表示されるので、項目名も含めてセル「A21」まで範囲指定しておく(図13)。
すると図14のように、該当する住所の上にピンが立つ。ピンをクリックすると「住所とコンビニ名」が表示される。
では、試しに別な住所を入力してみよう「京都市伏見区桃山町」と入力した結果が図15だ。「京都市」だけでなく「北海道」にもピンが立っている。「礼文駅」にピンが立っている。コンビニ名に「セブンーイレブン深草大亀谷店」で「ーイレブン」が含まれているので、北海道にピンが立ったのかもしれない。
ピンが全国に散らばっている場合は、日本全体の地図が表示される。限定された場所だけの場合は、その場所がズームインして表示される。
この不具合を解消するためには、「住所とコンビニ名」を表示させるセルに、「住所」だけを表示させることで解決できると思うが、そうなると、ピンをクリックした場合に、住所だけが表示されて「コンビニ名」が表示されなくて分かりにくい。ここは、北海道は無視して、「京都市」の場所を拡大してみよう。
すると、図16のように5件あるべきデータが4件のピンしか表示されていない。「セブンーイレブン」は北海道と判断されている。どうも「セブンーイレブン」の表記が悪いようだ。他の住所で、「セブンイレブン」の場所はきちんと表示される。
次回はVBAでGoogle Mapsを表示させる
今回はGoogle Places APIを使用して、指定した住所に存在するコンビニの位置をBing Mapsに表示させてみた。Bing Maps自体まだまだ進化の途上で、データ件数とデータ型も限定されており、あまり融通は効かないが、今回紹介したような表示をすることは可能だ。Bing Maps自体にまだまだ問題点もあるが、これからに期待したい。
レスポンスで返ってきたデータの表記方法によっては、前述したように、どんでもない場所にピンが立つこともあるが、これがBing Mapsのせいというより、データの問題であるのかもしれない。
次回はExcel VBAでGoogle Mapsを表示させるTipsを紹介する。お楽しみに。
著者プロフィール
薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所
薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。
1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。
2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。
Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。
Microsoft MVP for Development Platforms - Client App Dev(Oct 2003-Sep 2012)。
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- テストエビデンス取得自動化の秘技(前編):Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみた
システム開発におけるソフトウェアテスト(結合テスト〜システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。前編はSelenium VBAのインストール方法と使い方、スクリーンショットを自動でExcelに張り付ける方法について。 - Windows TIPS:[Esc]キーによるExcel VBAの実行中断を防止する
- Windows TIPSディレクトリ > プラットフォーム別 > Office > Excel