宝くじと過ごす日々

Excel,VBA,Radio,モキュメンタリー好き事務の活動記録です。

【Selenium×VBA】Excelに入力した住所をGoogleMapで検索してスクショを撮るマクロ【自動化】

今回作った資料は、

Excelに入力した複数の住所(上限100個)をGoogleMapで検索してスクショを撮って、任意の場所に、任意の名前をつけて保存するマクロ」です。

わからないところがあったら、問い合わせフォームかTwitterでメッセージください。

 

イメージはこちら↓

f:id:osushidaisukikun:20210816165215j:image

 

この資料で役立ちそうなポイント

  • Selenium×VBAでのスクショの撮り方
  • GoogleMapの自動化

↓ここから下をコピペしてください↓

Sub maptest()

'設定ここから-------------------------------

Set Thisbk = ThisWorkbook

Dim ws As Worksheet

'「address」というシート名にしている
Set ws = Thisbk.Sheets("address")

Dim cnt As Integer

'B1セルには繰り返す回数が入力されている 10回なら10と入力(=countAとか入れる)

cnt = ws.Range("B1")

'グーグルマップのURLを指定
Dim siteurl As String
siteurl = "https://maps.google.com/"

'Seleniumの初期処理

Dim Driver As New Selenium.ChromeDriver

Driver.AddArgument "--incognito" 'シークレットモード

Driver.AddArgument "disable-gpu"

Driver.AddArgument "start-maximized" '画面最大化

Driver.AddArgument "headless" 'バックグラウンド処理 無しでもOK

'Chrome起動
Call Driver.Start("chrome")


'設定ここまで-------------------------------

'回数分繰り返しここから--------------------------------------
For c = 1 To cnt

'グーグルマップを開く 開きなおさないと検索が上手くできない為
Driver.Get siteurl

'スクショを保存するときの名前、拡張子はpngにしている C3セルから下に入力
Dim name As String
name = ws.Cells(2 + c, 3) + ".png"

'調べたい住所 B3セルから下に入力
Dim address As String
address = ws.Cells(2 + c, 2)

'保存するフォルダのパスに\を足してる D3セルから下に入力
Dim path As String
path = ws.Cells(2 + c, 4) + "\"

'保存先と名前を指定するために合体
Dim sspath As String
sspath = path + name

'住所を入力して検索
Driver.FindElementByXPath("//*[@id=""searchboxinput""]").SendKeys ""

Driver.FindElementByXPath("//*[@id=""searchboxinput""]").SendKeys address

Driver.FindElementByXPath("//*[@id=""searchbox-searchbutton""]").Click

'落ち着くまで待つ
AppActivate Application.Caption

Driver.Wait 3000 '3秒じゃ足りないこともあるのでそしたら5000とかにする

'スクショを撮って指定の場所に、指定の名前で保存
Driver.TakeScreenshot.SaveAs sspath

Next c

'回数分繰り返しここまで--------------------------------------

'Chromeを閉じる
Driver.Close

End Sub

↑ここから下をコピペしてください↑

f:id:osushidaisukikun:20210816165007j:image