« ディレクトリが見つかりません | トップページ | 究極のハシゴ »

2008年9月 2日 (火)

エクセルからグーグルマップ

「エクセルで住所をクリックしたら、その場所をグーグルマップで表示させたい」

うーんすばらしい発想に感謝。

この解説というか回答する前に
エクセルのマクロを自由に使えるようにするための下準備
セキュリティを低にするところから
2007なら
http://pasofaq.jp/office/excel/excel2007macro.htm
それより前のバージョンなら
「ツール」「マクロ」「セキュリティ」で、中か低の設定に

さて今回の「やりたいこと」
エクセルのVBA(マクロ)までは想像がつきますが
自分で1から考えるのは、私には無理。
さっそググる。

世の中には、同じ事を考える人はちゃーんといる。

ずばり
答えてねっと 投稿全文表示
http://www.kotaete-net.net/Default.aspx?pgid=14&qid=180745445795

この回答2でいけます

ただ、これだけではスンナリといかない
このコードの中の
DataObject
を認識させるには、プログラミングをしている人のパソコンには
きっと入っていると思われますが、私も含めて
パソコンを普通に使っている人は、前準備が必要

これまたズバリ
Microsoft Forms 2.0 Object Library を参照設定する必要があります
http://pc.k-solution.info/programming/vba/excelvba1.aspx

これでも、まだ、ちゃんと動かない
うーん、コードをよーく見たら
objShell.Run " httpの"とhttpの間にスペースが入ってしまっている
これを取り除いたら、見事に稼働しました

うーん、ひとさまの作品なれど
住所をクリックしたら、その場所が現れる!
この快感!

エクセルやられる人、おためしあれ!

念のため、コードを再掲しておきましょう
エクセルシートタブを右クリックして、コードの表示、
以下のコードを貼り付けるだけです

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Not Intersect(Columns(1), Target) Is Nothing Then 'A列を対象
  If Target.Value <> "" Then 'ダブルクリックのセルが空でない時
   Cancel = True
   Dim objShell
   Set objShell = CreateObject("WScript.Shell")
   objShell.Run "http://maps.google.co.jp/maps?hl=ja&tab=wl" '検索ページのURL
   objShell = ""
   Dim buf As String, CB As New DataObject
   buf = Target
   With CB
    .SetText buf ''変数のデータをDataObjectに格納する
    .PutInClipboard ''DataObjectのデータをクリップボードに格納する
   End With
   Application.Wait (Now + TimeValue("0:0:5")) '正しく検索されるように調整して下さい(秒数)
   Application.SendKeys "^{v}", True 'キー コード Ctrl+V ペースト
   Application.SendKeys "~", True 'キー コード Enter
  End If
 End If
End Sub

|

« ディレクトリが見つかりません | トップページ | 究極のハシゴ »

コメント

みんな の プロフィールは、アクセスアップをお手伝いするサイトです。
http://blog.livedoor.jp/miminapu/


より多くのひとに貴方のブログを見てもらえます。

投稿: みんな の プロフィール | 2008年9月13日 (土) 12時53分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: エクセルからグーグルマップ:

« ディレクトリが見つかりません | トップページ | 究極のハシゴ »