ExcelVBAとGoogleマップの連携

スポンサードリンク

ExcelVBAとGoogleマップの連携

お知らせ
※2017/10/1現在この記事のコードは一部使用できないようです。
ExcelVBAとGoogleマップの連携2】にて代替え案をご紹介しております。

今回はExcel VBAを使って【GoogleMap】を表示する方法をご紹介します!

ExcelでGoogleマップを表示する方法はいくつか存在します、今回ご紹介するのはその中の一つです。

ネットでもいくつか紹介されていた記事は見つけましたが、コードを公開しているだけであまり解説がなかったり、AccessVBAのコードだったりとしたので個人的に編集して何とか使用できるレベルにしたつもりですので是非ご覧ください。

GoogleMapを表示する準備

 

まずGoogleマップを表示する為に必要な準備をしていきましょう。以下の手順を踏んでいきます。

  1. 表示させるユーザーフォームを作成。
  2. WebBrowserコントロールで表示するHTMLを作成する
  3. HTMLに読み込ませるJavaScriptを作成する
  4. ユーザーフォームMapをに表示させ、JavaScriptに書き込むVBAコードを作成する

今回は3つのファイルを連携させるような形になります。3つの関係性はこのような感じで思ってください。

 

1.表示させるユーザーフォームを作成

 

ますGoogleマップを表示するためのユーザーフォームを作成していきます。GoogleマップはWEBページなのでユーザーフォームのWebBrowserコントロールを使います。

WebBrowserコントロール導入についてはこちらで確認してください。

ウェブページを表示するコントロール【WebBrowserの使い方】
ウェブページを表示するコントロール【WebBrowserの使い方】こんばんはtakaです、今回はユーザーフォーム上でウェブページを回覧をすることができるコントロール【WebBr...

イメージとしてはこんな感じです。

このユーザーフォームに記述するコードは下記のコードだけで十分です。

※スクリプトエラーが発生し、制御不能になってしまう恐れがあるのでそれを最低限防ぐコードです。今後対策がわかり次第記述します。

2.WebBrowserコントロールで表示するHTMLを作成する

 

続きまして上記のユーザーフォームを表示させるためのHTMLファイルを作成しましょう。

今回表示するHTMLはこちらのwebサイト様のHTMLを流用させていただきました。

http://tsware.jp/download/accgmap/

※HTMLが少し古いバージョンだったので最新のHTML5に書き換えて使用しています。

ファイル名:index.html

 

3.HTMLに読み込ませるJavaScriptを作成する

 

次はHTMLファイルが地図データを読み込むためのJavaScriptを作成しましょう。

ファイルの中身はExcel側で書き込むので【メモ帳】などで新規作成し、ファイル名を【mapdata.js】で作成してください。

 

 

4.ユーザーフォームMapをに表示させ、JavaScriptに書き込むVBAコードを作成する

 

最後にユーザーフォームにHTMLを表示させ、先ほど作成した【mapdata.js】の中身を書き込むコードを作成しましょう

まず【mapdata.js】に書き出しをするために参照設定をする必要があります。

ツール→参照設定→【Microsoft ActiveX Data Objects 〇.〇 Library】
※〇は最新のバージョンを設定してください。

これで準備は完了です、次にコードですが、下記のコードはA列のセルをダブルクリックしたときにA列のデータを読み込んで地図を表示するコードです。

コードを記述するところは赤丸のところに記述してください。

解説はコード中のコメントでしていますのでご参考ください。

結果

 

間違っていなければ下記の画像のような結果が表示されていると思います。

 

最後に

いかがでしたでしょうか?ExcelとGoogleマップを連携させると住所録などの新しい使用法が生まれるのではないかと思います。今回のコードが何かの役に立てば幸いです。

今回ご紹介したファイルはフリーでダウンロードできるようにしておきますのでご自由にお使いください。

ファイルダウンロード

 

ブログランキング


【E-VBA】はブログランキングに登録しています(∩´∀`)∩


にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

人気ブログランキングへ

ファイルやコードの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

3 件のコメント

  • 内容を拝見致しました、素晴らしいと思います

    が、当方インターネットエクスプローラは11なので上手く起動しないのでしょうか…?
    7迄しか動かないのでしょうか…?
    当方の環境はWindows10、エクセルバージョンはMicrosoft office Home and Business 2013を使用しております

    動かない現象内容↓
    ・sample.xlsmを開き、A2セルをダブルクリックしてuserform1が立ち上がるのですが、肝心のマップが
     表示されません…真っ白なのです。ファイルダウンロードし、圧縮ファイルを解凍しフォルダの
     sample.xlsmを開き運営者様のように使用すれば稼働すると思われるのですが…
     なんででしょうか?(;´・ω・)

    是非活用したいと思いますのでご返信お待ちしております。

    • 通りすがり様、コメントありがとうございます(^^♪

      確認しましたところ、確かにこの記事の通りに構築した場合、白いページになってしまいました。
      私自身、Excel2013、Windows10の環境で動作を確認した後にこの記事を公開したため、通りすがり様の環境は関係ないかと思われます。
      原因を探っております、私自身JavaScriptに疎いため時間がかかってしまいますが、、、
      おそらくですがGoogleの仕様変更などが考えられます。

      別の代替え案等も併せてご紹介できるように頑張ります。

      • ご返信ありがとうございます!

        成程、Google側の仕様変更等問題の可能性でしたか…
        調査していただきありがとうございます(^^)/

        代替案、是非お待ちしております

        当方VBA初心者で勉強中であります、
        運営様のサイトをみて改めてVBAってすごいなと思いました、
        これからもサイト更新を楽しみにしております、今回はありがとうございました。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    あることがキッカケでVBAを独学で勉強している、非IT企業の会社員。
    今はVBAで出来ることを模索しながら別の開発言語の取得、基本情報技術者試験合格が目標