EXCEL VBAについて下記のスクリプトを手直しして下さい。


A列の文字列をヤフオクで検索するというプログラミングを下記のように作りました。
-----------------------------
i = 2
Do Until Range("B" & i) = ""
Range("B" & i).Select
CreateObject("Wscript.Shell").Run "http://auctions.search.yahoo.co.jp/search?ei=UTF-8&p=" & ActiveCell.Value, 1
i = i + 1
Loop
-----------------------------
ところが、A列に「人力検索 はてな」という文字列が入ってたとすると、
「人力検索」として検索してしまいます。
つまり、文字列と文字列の間にスペースがあると、そこで区切られてしまい、
最初の文字列でしか検索だけで検索してしまいます。
これを「人力検索 はてな」と検索できるようスクリプトを変更して下さい。

環境はwindows7、Excel2013です。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/07/02 09:40:04

回答1件)

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

Excel は 32bit 版でしょうか。
こんな感じにすると、期待通りに動くと思います。

' こんな関数を定義する
Private Function EncodeURL(ByVal str As String) As String

  Dim objSC As Object
  Set objSC = CreateObject("ScriptControl")
  objSC.Language = "Jscript"

  EncodeURL = objSC.CodeObject.encodeURIComponent(str)

  Set objSC = Nothing

End Function



Sub Hoge()

  i = 2
  Do Until Range("B" & i) = ""
    Range("B" & i).Select
    ' ActiveCell.Value を EncodeURL 関数で変換する
    CreateObject("Wscript.Shell").Run "http://auctions.search.yahoo.co.jp/search?ei=UTF-8&p=" & _
       EncodeURL(ActiveCell.Value), 1
       ' ↑見切れちゃうので、複数行にしましたが、一行にしても大丈夫です

    i = i + 1
  Loop

End Sub

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません