'
'******** AKIRA55.COM ******* https://akira55.com//Nearest_station/
'
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Nearest_station01() '指定した最寄り駅検索を行います。
Dim IE As Object
Dim My_Add() As String
Dim I, L, lRow As Long
Dim Txt_Data(6), Button As Object
lRow = Cells(Rows.Count, "C").End(xlUp).Row 'C列(住所)の最終行を取得
For I = 3 To lRow '3行目から最終行までループします。
ReDim Preserve My_Add(I) As String '既存データを保持したまま要素数を変更します。
My_Add(I) = Cells(I, "C").Text
Set IE = CreateObject("InternetExplorer.application")
IE.Visible = True 'InternetExplorerを立ち上げる。
IE.navigate ("https://map.yahoo.co.jp/maps") 'YahooMapを開きます。
Do While IE.Busy Or IE.readystate < readystate_complete 'Webページが表示されるまで待ちます。
DoEvents
Sleep 1
Loop
Sleep 2000
Set Txt_Data(0) = IE.document.getElementByid("yschsp")
Txt_Data(0).innertext = My_Add(I) '住所データを入力します。
Set Button = IE.document.getElementByid("search")
Button.Click '検索ボタンをクリックします。
Do While IE.Busy Or IE.readystate < readystate_complete '検索結果のWebページが表示されるまで待ちます。
DoEvents
Sleep 1
Loop
Sleep 2000
On Error Resume Next ' エラー回避
Set Txt_Data(1) = IE.document.getElementsByClassName("stationname")(0) '一番目に近い駅名を取得します。
Set Txt_Data(2) = Txt_Data(1).parentElement.getElementsByTagName("span")(0) '一番名に近い駅からの徒歩時間を取得します。
Set Txt_Data(3) = IE.document.getElementsByClassName("stationname")(1) '二番目に近い駅名を取得します。
Set Txt_Data(4) = Txt_Data(3).parentElement.getElementsByTagName("span")(0) '二番名に近い駅からの徒歩時間を取得します。
Set Txt_Data(5) = IE.document.getElementsByClassName("stationname")(2) '三番目に近い駅名を取得します。
Set Txt_Data(6) = Txt_Data(5).parentElement.getElementsByTagName("span")(0) '三番名に近い駅からの徒歩時間を取得します。
For L = 1 To 6 '配列データ1~6を繰り返す
Cells(I, L + 3) = Txt_Data(L).innertext 'Webページから取得したデータをセルへ出力します。
Next L
On Error GoTo 0 ' エラー回避
IE.Quit 'InternetExplorerを閉じる
Next I
MsgBox "最寄り駅検索が終了しました。"
End Sub
'