dポイントプレゼントキャンペーン実施中!

エクセルのセルに検索したい文字を入力し、
マクロで以下のコードをやったのですが、
Sub メニュー追加()
With CommandBars("Cell").Controls.Add(before:=1)
.Caption = "グーグル検索"
.OnAction = "グーグル検索"
End With
End Sub

Sub グーグル検索()
CreateObject("Wscript.Shell").Run "http://google.com/m?q=" & ActiveCell.Value, 1
End Sub

文字化けしてしまいます。

エクセルに入力されている文字を一度エスケープにしないと無理なのでしょうか?

PCのグーグルだと、なぜかできます。

A 回答 (2件)

[ANo.1] の DOUGLAS_ です。



>ヤフーPCもエンコードしないとできないみたいなので、
>教えていただいたマクロでヤフーPCをやってみたところ
>エンコードされず、文字化けしてしまった

 恐らく、検索URL の文字列が間違っているのではないでしょうか?

 試したところ、下記でいけました。

CreateObject("Wscript.Shell").Run "http://search.yahoo.co.jp/search?p=" & UrlEncodeUtf8(ActiveCell.Value), 1
    • good
    • 0
この回答へのお礼

できました^^
urlencodeが抜けていました。

DOUGLASさん今回は大変ありがとうございました。
また機会があればよろしくお願いします。

お礼日時:2010/02/27 17:19

◆◆google mobile における URLエンコード の是非◆◆


>エクセルに入力されている文字を一度エスケープにしないと無理
のようですね。
 ただし、論拠は発見しておりません。

>エスケープにしないと無理なのでしょうか?
 このご質問の趣旨が、エスケープ(エンコード)の方法ではなくて、その是非をお問い合わせになっていらっしゃるのでしたら、これ以降はスルーなさってください。


◆◆エクセル VBA での URLエンコード の方法◆◆
●VB6・VBAで簡単にURLエンコード・デコードする方法
http://komet163.blog36.fc2.com/blog-entry-18.html

に、ちょうどよいサンプルが載っていますので、
CreateObject("Wscript.Shell").Run "http://google.com/m?q=" & ActiveCell.Value, 1
以下を

CreateObject("Wscript.Shell").Run "http://google.com/m?q=" & UrlEncodeUtf8(ActiveCell.Value), 1
End Sub
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)
Set objSC = Nothing
End Function

としてお試しください。

この回答への補足

DOUGALASさん、ご回答ありがとうございます。
教えていただいたマクロをやってみたところ、
問題なく一発でできました^^
わかりやすく丁寧にありがとうございました。

ヤフーPCもエンコードしないとできないみたいなので、教えていただいたマクロでヤフーPCをやってみたところエンコードされず、文字化けしてしまったのですが、なぜなのでしょうか?

このPUBLIC FUNCTIONはグーグルモバイルにのみ適用されるとうことでしょうか?

補足日時:2010/02/26 17:06
    • good
    • 0

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