- ベストアンサー
Excelで住所を入力したら地図が出るようにしたい。
いつもお世話になっています。 Excelでセルに住所を入れたら、別のセルに周辺地図が出てくるようになんて出来ないでしょうか? Yahoo地図とリンクするとか出来ないものかなぁと考えてるのですが自分ではどうしたらいいのか分かりません。 いつも頼ってしまって申し訳ないのですが分かる方がいらっしゃったらよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Excelでセルに入れた住所からYahoo地図を 住所を入れたセルを【ハイパーリンクの挿入】ボタンをクリック。 ファイル名またはWebページ名 に Yahoo地図のアドレスを入れます。
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
> いつも頼ってしまって申し訳ないのですが... 本当にそのようにお考えで、回答に対して直ぐにレスポンスできないなら、 「困り度3:直ぐに回答ほしいです」にしないことです。 回答者は、「直ぐに」というご事情を回答者なりに察して、さらなるご質問 が来てないかと心配りをしてたりするのですよ。 もう一つ提案しておきます。1つ1つの住所について作業する必要がありますが... 1. Yahoo!Map 等の地図を画像としてファイルに保存 2. セルにコメント挿入 3. コメントを選択し、右クリック「コメントの書式設定」 4. [色と線]-[塗りつぶし]-[色]-[塗りつぶし効果] 5. [図]-[図の選択] でコメントに地図画像を表示させる方法はどうですか。
お礼
ご回答ありがとうございました。 お礼が遅くなり、本当にすみません。 こちらの事情で落ち着いて教えていただいた作業を試すことが出来ず、放置状態になってしまってすみませんでした。 以後、気をつけます。
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんばんは。KenKen_SP です。 VBA による回答サンプルです。 HTML がわかる場合は、HTML ソースを眺めてみればどのようなパラメータを サーバに渡せば良いかわかります。 IE の画面を画像ファイルで落とすようにすれば、セルに表示できなくはない ですけど、表示倍率が固定化されてしまうとか、コードが複雑になるので、 ブラウザで開く仕様の方が良いでしょう。 Yahoo!Map ではなく、個人的な好みで Google Map になってますが... マウルホイールとかドラッグで地図が操作できて、こちらの方が便利だと 思いますよ。 シートモジュールに下記のソースコードをコピペして、C2 以下 C 列のセル に適当な住所を入力してからダブルクリックしてみて下さい。 ハイパーリンクを自前で処理している格好なので、少し Excel のリンク機能 とは違った感じですが、住所のデータを青色文字にすればリンクの雰囲気は でます。 (´・ω・`)σ なお、C2 以下のセルは F2 キー で編集モードにして下さい。 ’------------------- シートモジュール -------------------------- Option Explicit ' 住所が入力されているセルの範囲を定義します ex) C2 以下に住所がある場合 Private Const ADDRESS_DATA = "C2:C65536" ' Google Map 問い合わせ URL Private Const GOOGLEMAP_QUERYSTR = "http://maps.google.co.jp/maps?f=q&hl=ja&q=" ' Google Map 初期表示倍率(整数で1~) Private Const GOOGLEMAP_ZOOM = 16 ' シート上のダブルクリック操作で発生するイベントプロシージャ Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Me.Range(ADDRESS_DATA)) Is Nothing Then ' ダブルクリックでセル編集モードにしない Cancel = True 'Google Map をブラウザで表示 Call ShowGoogleMap(Target.Value) End If End Sub ' 引数で渡した住所付近の地図を Google Map で表示する Private Sub ShowGoogleMap(ByVal strAddress As String) Dim strURL As String If strAddress = "" Then Exit Sub strURL = UrlEncode(StrConv(strAddress, vbWide)) strURL = GOOGLEMAP_QUERYSTR & strURL & "&z=" & CStr(GOOGLEMAP_ZOOM) CreateObject("WScript.Shell").Run strURL End Sub ' 文字列を URL エンコードして返す(JScript の encodeURI 関数を利用) Private Function UrlEncode(ByVal strText As String) As String If strText = "" Then Exit Function With CreateObject("ScriptControl") .Language = "JScript" With .CodeObject UrlEncode = .encodeURI(strText) End With End With End Function
お礼
ご回答ありがとうございました。 お礼が遅くなり、本当にすみません。 こちらの事情で落ち着いて教えていただいた作業を試すことが出来ず、放置状態になってしまってすみませんでした。 以後、気をつけます。
- web2525
- ベストアンサー率42% (1219/2850)
Yahoo地図の場合、表示する地図を緯度/経度から算出しているようなので、住所を緯度/経度情報に変換する機能がないと実施不可能かと思います。 全国的な規模での利用でなければ、ゼンリン等の住宅地図ソフトを利用して、町名と地図データーを関連付けることにより実施可能かとは思います。 実際に新聞販売店での顧客管理ソフトに同様の機能があるものがあります。 ただしデーターの関連付けは手動で行う必要が有るので膨大な時間が掛かります。
お礼
ご回答ありがとうございました。 お礼が遅くなり、本当にすみません。 こちらの事情で落ち着いて教えていただいた作業を試すことが出来ず、放置状態になってしまってすみませんでした。 以後、気をつけます。
お礼
ご回答ありがとうございました。 お礼が遅くなり、本当にすみません。 こちらの事情で落ち着いて教えていただいた作業を試すことが出来ず、放置状態になってしまってすみませんでした。 以後、気をつけます。