質問: Excel2007 Webクエリ機能についてご質問いたします。 Webクエリを用いて、Google, Yahooの任意の検索結果の反映を確認する目的となります。 ここでの任意とは検索キーワードとなり、この値はセル上にパラメータとして定義しております。 以下、作成したクエリとなります。 Googleはうまくいくのですが、Yahooはクエリが実行される際に文字化けを起こしてしまい、うまくいきません。 ["Yahoo", "Search Query"] ["Google", "Search Query"] 添付画像はパラメータに実際の値が入った例ですが、 Yahooは表示されているような文字化けがおこります。 もし解決方法がありましたら、ご教示いただけますと幸いです。 よろしくお願いいたします。
回答: yahooで漢字(2バイトコード)をうまく自動変換してくれないみたいなので、 と渡すと、OKみたいです。 なので、 【ハウツー】Excel VBAでWebサービス - ExcelでJScriptの機能を利用しよう (1) はじめに | パソコン | マイナビニュース! を参考にして、 津軽リンゴを%E6%B4%A5%E8%BB%BD%E3%83%AA%E3%83%B3%E3%82%B4に変換して、 q=の後ろにつなげて Webクエリーに渡してみては? ``` 'VBA から javaScriptのencodeURIを使うテスト ' 先に http://news.mynavi.jp/articles/2012/03/25/vba/index.html を見てください。 'エンコード元の文字列を受け取り、javaScriptのencodeURIで変換して返す Function JavaScript_encodeURI(strMOJI As String) As String '検索文字をJavaScriptのencodeURI関数で作る Dim strPARA As String 'パラメーター Dim sc As Object Set sc = CreateObject("ScriptControl") sc.Language = "Jscript" 'JavaScriptを指定(書き間違えないでね) strPARA = sc.CodeObject.encodeURI(strMOJI) 'encodeURI関数を呼ぶ Set sc = Nothing Debug.Print strPARA JavaScript_encodeURI = strPARA '変換結果を返す End Function Sub MAIN0405() '検索文字を入力 ※本当は、ここはセルから取得ですね・・・ Dim strWORD As String strWORD = InputBox("キーワード=", "入力", "津軽リンゴ") '変換処理を呼ぶ Dim strPARA As String strPARA = JavaScript_encodeURI(strWORD) 'キーワードを渡し結果を受け取る '確認 手抜きで Shell でWebページを表示する Dim strURL As String 'URL+変換したパラメーターでサーチする strURL = "http://search.yahoo.co.jp/search?p=" & strPARA Call Shell("explorer.exe """ & strURL & """", vbNormalFocus) 'これが、うまく Webクエリーで応用できたらいいんだけど・・・ End Sub ``` ※ を 少し修正 うまいこと、Webクエリーのパラメーターとして、渡せるといいなぁ・・と思いつつ失礼します。