プロが教える店舗&オフィスのセキュリティ対策術

エクセルのマクロでコマンドボタンを押すと、セルに入力した住所のGoogleマップが表示される様にするには、どういったマクロを記録すれば良いですか?

A 回答 (4件)

#簡易版で。



ブラウザで表示するのであれば、セルを選択して、

Shell "explorer.exe ""http://maps.google.co.jp/maps?q=" & Selection.Value & ""
とか
CreateObject("Wscript.Shell").Run """http://maps.google.co.jp/maps?q=" & Selection.Value & ""
など。


または最初だけハイパーリンクを設定しても良いと思います。

Selection.Formula = "=HYPERLINK(""http://maps.google.co.jp/maps?q=" & Selection.Value & """,""" & Selection.Value & """)"

ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
              Address:="http://maps.google.co.jp/maps?q=" & Selection.Value



#複数セル範囲に一括で設定するには?..という追加もありそうなので
Sub try()
  Dim r As Range
  
  For Each r In Selection
    ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="http://maps.google.co.jp/maps?q=" & r.Value
  Next
End Sub
設定したいセルを選択してtryです。



シート上に表示させたいなら、[コントロールツールボックス]の[コントロールの選択]で
[Microsoft Web Browser コントロール]をシートに配置しておけば、

ActiveSheet.WebBrowser1.Navigate "http://maps.google.co.jp/maps?q=" & Selection.Value

みたいな感じでもできるかと思います。
    • good
    • 0

Goole MAP API を、VBAでは簡単には使えないのか、面倒なので読んでいません。


以下のような感じでいかがですか? Internet Explorer 専用にするのは辞め、以下は、どのブラウザでも起動可能なブラウザなら、閲覧可能なはずです。

コントロールツールのCommandButton, A1 に住所を入れる, マクロは、シートモジュールに入れる

'//シートモジュール
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWMAXIMIZED As Long = 3

Private Sub CommandButton1_Click()
Dim buf As String
Dim sAddr As String
Const sURL As String = "http://maps.google.co.jp/maps?hl=ja&q="
Dim strPathName As String
If Range("A1").Value Like "[ぁ-龠]*" Then
  buf = Range("A1").Value
  sAddr = UrlEncode(buf)
ShellExecute ByVal 0&, "open", sURL & sAddr, vbNullString, vbNullString, SW_SHOWMAXIMIZED
Else
 MsgBox "A1に正しく入力されていないようです。", vbExclamation
End If
End Sub

Private Function UrlEncode(ByVal sText As String) As String
  If Len(sText) = 0 Then Exit Function
  With CreateObject("ScriptControl")
    .Language = "JScript"
    UrlEncode = .CodeObject.encodeURI(sText)
  End With
End Function

'//p.s. マクロとは、その取り扱い言語は別として、ひとつの作業(タスク)の自動実行を目的とする機能のことです。逆にいうと、ひとつの作業を実行できないものは、マクロとは呼びません。厳密には、引数を持たないパブリックなSub プロシージャのことだけを指します。したがって、上記のは厳密にはマクロとは呼びません。(用語の説明は、Microsoft のプログラマーズガイドに載っています。)
    • good
    • 0

質問の内容はエクセルVBAの範疇では在りません。

VBAをマクロなんていっているレベルの人の直ちに出来ることではない。プロがやる領域のことで、ここに質問するレベルでは無いとおもいます。
やるなら時間をかけて自分で勉強すべきです。
マイクロソフトとGoogleの開発製品の違いもありますので、むつかしさも多くなる。
Googleで「google map android」「google map プログラム」ででも照会し、
http://japan.internet.com/column/developer/20080 …
などを読んで、匂いでも嗅いでください。
市販の本も出版されています。大型書店で探せばあります。
    • good
    • 0

マクロの記録では、コードは得られません。


VBA 住所のGoogleマップが表示 とかで検索してみてください。
過去スレですが、
http://plaza.rakuten.co.jp/issosakura/diary/2008 …
とか
http://okwave.jp/qa/q5287885.html
とかに参考のコードがありました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!