- ベストアンサー
マクロでエクセルのセルに検索文字を入力し、文字化けする問題について
- エクセルのマクロを使用して、セルに検索したい文字を入力すると、文字化けしてしまう問題が発生しています。
- グーグル検索のマクロを作成する際に、エスケープ処理が必要なのかどうか検討しています。
- PC版のグーグルでは同じコードが正常に動作するため、エクセル側の問題である可能性があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
[ANo.1] の DOUGLAS_ です。 >ヤフーPCもエンコードしないとできないみたいなので、 >教えていただいたマクロでヤフーPCをやってみたところ >エンコードされず、文字化けしてしまった 恐らく、検索URL の文字列が間違っているのではないでしょうか? 試したところ、下記でいけました。 CreateObject("Wscript.Shell").Run "http://search.yahoo.co.jp/search?p=" & UrlEncodeUtf8(ActiveCell.Value), 1
その他の回答 (1)
- DOUGLAS_
- ベストアンサー率74% (397/534)
◆◆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はグーグルモバイルにのみ適用されるとうことでしょうか?
お礼
できました^^ urlencodeが抜けていました。 DOUGLASさん今回は大変ありがとうございました。 また機会があればよろしくお願いします。