エクセルVBAで、「ウェブサイトへの地図埋め込み用 HTML コード」 を取得するには?
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2014年10月14日(火)16時47分 From: msxrs | 返事 削除 変更 |
やはり直接はむずかしそうですね。 はい、ご指摘どおり地図が表示できればよいので、GoogleのAPIを利用する方法でも全然問題ありません。 座標が取得できるのであれば、あとは設定するだけのようですので一度これで挑戦してみたいと思います。 ありがとうございました。 |
Message#2 2014年10月13日(月)23時09分 From: 管理人 | 返事 削除 変更 |
googlemapから直接抽出は難しいですが、マップを表示させるのであれば、Google Maps API V3を利用されてはいかがですか? こちらを利用するためには住所の座標を取得必要がありますので、以下サイトから座標を抽出できます。 http://napzak.com/tool/gcode/ こちらのサイトから座標を抽出するマクロは以下になりますので、一度ご確認ください。 Sub sample() Dim objIE As InternetExplorer Call ieView(objIE, "http://napzak.com/tool/gcode/") For Each objTag In objIE.document.getElementsByTagName("input") If objTag.ID = "address" Then objTag.value = "東京都千代田区丸の内1丁目" Exit For End If Next Call tagClick(objIE, "input", "address2latlng_btn") waitTime = Now + TimeValue("0:00:05") Application.Wait waitTime Debug.Print objIE.document.getElementById("lat").value Debug.Print objIE.document.getElementById("lng").value End Sub Sub ieView(objIE As InternetExplorer, _ urlName As String, _ Optional viewFlg As Boolean = True, _ Optional ieTop As Integer = 0, _ Optional ieLeft As Integer = 0, _ Optional ieWidth As Integer = 600, _ Optional ieHeight As Integer = 800) 'IEのオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.Application") 'IEを表示・非表示 objIE.Visible = viewFlg objIE.Top = ieTop 'Y位置 objIE.Left = ieLeft 'X位置 objIE.Width = ieWidth '幅 objIE.Height = ieHeight '高さ '指定したURLのページを表示する objIE.Navigate urlName 'IEが完全表示されるまで待機 Call ieCheck(objIE) End Sub Sub ieCheck(objIE As InternetExplorer) Dim timeOut As Date timeOut = Now + TimeSerial(0, 0, 10) Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop timeOut = Now + TimeSerial(0, 0, 10) Do Until objIE.document.ReadyState = "complete" DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop End Sub |
Message#1 2014年10月13日(月)05時12分 From: msxrs | 返事 削除 変更 |
自分のサイトに複数の地図のタグを埋め込みたいがために グーグルマップでのタグを取得したいです。 (https://www.google.co.jp/maps/place/%E6%9D%B1%E4%BA%AC%E9%83%B D%E5%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E4%B8%B8%E3%81%AE%E 5%86%85%EF%BC%91%E4%B8%81%E7%9B%AE/@35.6815248,139.7654457,16z /data=!3m1!4b1!4m2!3m1!1s0x60188bf97912d02d:0xee1220ee8337117) A列に住所が入力されており、 その住所を変数で読み取って最終行までループし、B列に「ウェブサイトへの地図埋め込み用 HTML コード」で取得した値を入れたいのですが 「ウェブサイトへの地図埋め込み用 HTML コード」をvbaで取得する方法がわかりません。 VBAでIE操作はわかるのですが、IEで住所を指定して開いて、その後の方法がわかりません。 ご教授よろしくお願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降