[[20150529171417]] 『グーグルマップへのハイパーリンクが変』(シジマ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『グーグルマップへのハイパーリンクが変』(シジマ)

いつもお世話になっています。

教えてください。

シートの D1 E1 F1に住所を打ち込んで

グーグルマップへリンクするよう

「=HYPERLINK("http://www.google.co.jp/maphp?hl=ja&tab=wl&q="& CONCATENATE(D1,E1,F1),"Google Maps")」

を入力していましたが 今日は リンク先が 変(所定の住所ではなく日本地図)。

確か4か月ぐらい前にも変(文字化け?)でしたので ネットで調べて

上記に変更したのですが また グーグル側で変更があったのでしょうか?

今回 ネットで検索しても わかりませんでした。

何か ご存知の方が おいでになれば 教えてください。

< 使用 Excel:Excel2010、使用 OS:unknown >


 皆さんが再現できるように実行時のセルの D1,E1,F1 の値を開示されてはいかがですか?

(β) 2015/05/30(土) 19:26


新しいグーグルは住所を文字として判断せず、エンコードとして判断するので、対象セルをエンコードに変換する必要があります。計算式は=URLENCODE(対象セル)です。
これで自分は使用しています。
=HYPERLINK("http://www.google.co.jp/maphp?hl=ja&tab=wl&q="&対象セル,"Googleマップで表示")
(さんぱちさん) 2015/06/06(土) 08:41

 URLENCODEとはユーザー定義関数だろか?
 であればそのソースあるいは入手法を書いてあげてくれ。

 なお、2013であればENCODEURL関数が追加されていてそれが使えると思う。
(ねむねむ) 2015/06/06(土) 10:12


 Option Explicit

'日本語をURLエンコードする関数
Function UrlEncode(mySource As Variant) As String

    '変数の宣言
    Dim objSC As Object 'ScriptControlオブジェクトを格納するための変数

    'ScriptControlオブジェクトのインスタンスを生成
    Set objSC = CreateObject("ScriptControl")

    'ScriptControlオブジェクトの言語をJScriptに設定
    objSC.Language = "JScript"

    '関数の戻り値として、引数mySourceをURLエンコードした値をセット
    UrlEncode = objSC.CodeObject.encodeURIComponent(mySource)

    'ScriptControlオブジェクトを破棄
    Set objSC = Nothing

End Function

以上

さんぱちさん 2015/06/06(土)



 =HYPERLINK("https://www.google.co.jp/maps/place/"& CONCATENATE(D1,E1,F1),"Google Maps")

 このURLで、符号化せずとも入力文字列を正常に受け取れますが、何か問題がありますか?

(ichinose) 2015/06/07(日) 09:44


 関係ないですが、google map繋がりでリンクしておきます。

http://www.excel.studio-kazu.jp/kw/20150420151851.html
(カリーニン) 2015/06/07(日) 09:52


本当ですね。
色々な方法があるのですね。

さんぱちさん   2015/06/07(日)09:55



返事が 遅くなり申し訳ありません。

βさん D1E1F1は それぞれ都道府県・市町村・所番地が 入るようにしています。

さんぱちさんさん(ですか?)・ねむねむさんエンコード化の関数ありがとうございます。

ichinoseさん URLでしたか ありがとうございます。

カリーニンさん リンク拝見いたしました。

で 関数を作成し 使ってみました。無事リンク致しました。

が 特定の住所のみ同様の結果が 見られました。

F1の所番地が「###-##」であるような住所(チャンとリンクする住所もある)

でした。「-##」を省けば 取りあえず リンクするようなので特定の住所では

そこを 省くようまた 新しいグーグルでは エンコードとして判断するとの

ことなので URLも取り込んで 作成したのが 下記です。

Function リンク先(住所_1 As String, 住所_2 As String, 住所_3 As String) As String
Dim 削除OK As Boolean
Dim 文字数 As Long
Dim 住所 As String, エンコード As String

Const グーグルマップURL As String = "https://www.google.co.jp/maps"
Const パラメータ As String = "?f=g&hl=ja&q="

Const ○○ As String = "*○○市○○区○○町###-##"
Const ×× As String = "*××市××町###-##"
Const △△ As String = "*△△市△△町###-#"

住所 = Replace(Replace(住所_1 & 住所_2 & 住所_3, " ", ""), " ", "")
住所 = WorksheetFunction.Clean(住所)
文字数 = Len(住所)
エンコード = ""

    If 文字数 > 0 Then
        削除OK = False
        Select Case True
            Case (住所 Like ○○): 削除OK = True
            Case (住所 Like ××): 削除OK = True
            Case (住所 Like △△): 削除OK = True
        End Select
        If 削除OK Then
            文字数 = InStr(住所, "-") - 1
            住所 = Left(住所, 文字数)
        End If
        With CreateObject("ScriptControl")
            .Language = "JScript"
            エンコード = .CodeObject.encodeURIComponent(住所)
        End With
    End If
    リンク先 = グーグルマップURL & パラメータ & エンコード
End Function

(シジマ) 2015/06/19(金) 16:52


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.