仕事柄、MS AccessでVBAのコードを書くことが多いのだが、VBAで既定のブラウザを起動し、任意の住所のGoogleマップを表示するプログラムを作ったので忘れないようにメモしておく。
'**********************************************
'指定した住所のGoogle Mapを既定のブラウザで開く
'引数:strADDRESS = "住所"
'戻値:なし
'**********************************************
Public Sub GoogleMAP(strADDRESS As String)
Dim objWSH As Object
Dim strURL As String
Dim strENC As String
strENC = UrlEncodeUtf8(strADDRESS)
strURL = "https://maps.google.co.jp/maps?hl=ja&q=" & strENC & "&um=1&ie=UTF-8&sa=N&tab=wl"
Set objWSH = CreateObject("WScript.Shell")
objWSH.Run strURL, 1
End Sub
'==================================================
'文字列をUTF-8でエンコードする
'strSource: 元の文字列
'返り値: エンコードされた文字列
'==================================================
Public Function UrlEncodeUtf8(ByRef strSource As String) As String
Dim objSC As Object
Set objSC = CreateObject("ScriptControl")
objSC.Language = "Jscript"
UrlEncodeUtf8 = objSC.CodeObject.encodeURIComponent(strSource)
End Function
使い方はGoogleMapプロシージャの引数に住所の文字列を渡せばよい。
既定のウェブブラウザが開いて指定した住所のGoogleマップが表示されるはずだ。
Call GoogleMap("東京都千代田区永田町1丁目7−1")
例では国会議事堂の住所を指定したが、”国会議事堂”と施設名、建物名、企業名などでも関連した地図が表示される。
私はこのプログラムをAccessに実装したけど、Excelのマクロとして動かすことも可能のはずだ。試してみてほしい。