地図上で位置情報を取得してExcelに転記

このブログに「Googleマップ 緯度経度 Excelへ」という検索キーワードからのアクセスがありました。おそらく、GoogleマップなどWeb地図で表示させた位置の緯度・経度を、選択・コピー&ペーストといった手間なく転記したいというニーズでしょう。

私も業務アプリ作成の中で、デジカメ写真の位置情報や住所から変換(リバースジオコーディング)した位置情報を微調整する機能を作成したことがあります。そのときは、自前のWebサーバーにある程度の機能をJavaScriptで実装する方法としました。

いろいろな手法が考えられると思いますが、今回は緯度経度の取得のみに限定して最も手間のかからない方法で作成してみました。
(初出2015/6/21、最新情報で更新2017/12/16)

どのようにするか

Web地図上にマーカーを設置して、そのマーカーをドラッグ&ドロップして…ていうのは開発側も利用側も手間がかかるので、単純に表示地図の中心座標を利用することにします。

GoogleマップがWeb地図として最もよく使われていますが、今回は以下の理由により地理院地図を利用します。

  • 標準で中心に十字カーソルが表示されている。
  • URLに位置情報が含まれ取得しやすい。
  • 国土地理院が広告なしで無償で公開している地図だから。

緯度経度を取得するには,ExcelとInternet Explorerを連携させ、位置情報の受け渡しをします。

ある程度の緯度・経度がわかっている場合はそれを用い、何もない場合は既定の位置で地理院地図を開きます。地図の中心の緯度・経度はURLから取得することにします。

マクロの作成

参照設定

Internet Explorerをコントロールしたいので、VBEの参照設定で、’Microsoft Internet Controls’ をチェックします。
ref

コード

コードの解説は以下の緑色のコメント内に記載しています。

特徴は何でも完璧に動かそうとせず,エラー処理に任せているところでしょうか。

48~49行目では,スラッシュで分割したものをSplit関数で配列に入れていますが,配列は0から始まるので,下図のように緯度を4,経度を5で指定します。

動作確認

動作確認すると,以下のようになります。マクロの実行は,別途ボタンを作るか,コンテキストメニューかリボンにつけるなどしてください。面倒であればショートカットキーを割り当てるだけでもいいと思います。

ダウンロード

この記事の手順ので作成できますのでチャレンジしてみて下さい。面倒な方のために以下よりサンプルファイルをダウンロード購入できます。

この下にGumroadのウィジェットを表示しています。表示されていない場合は企業・学校などのフィルタリングと思われますので、別な接続でお試し下さい。

関連記事