今回作った資料は、
「Excelに入力した複数の住所(上限100個)をGoogleMapで検索してスクショを撮って、任意の場所に、任意の名前をつけて保存するマクロ」です。
わからないところがあったら、問い合わせフォームかTwitterでメッセージください。
イメージはこちら↓
この資料で役立ちそうなポイント
- 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
↑ここから下をコピペしてください↑