※ ChatGPTを利用し、要約された質問です(原文:VBAのWEBクエリが中断されます)
VBAのWEBクエリが中断されます
このQ&Aのポイント
VBAを使ってgoogleのキーワード検索結果に表示される10文字程度の文字列を取得する作業を行いたい。
具体的には、検索キーワードを変化させて200件ほど取得しようと考えているが、40件前後でエラーが発生し中断される。
VBAを終了させてしばらく待った後は再度動作するが、同じエラーが再発する。この作業はVBAに向かないのか、コードに問題があるかを教えて欲しい。
VBAを使ってgoogleのキーワード検索結果に表示される10文字程度の文字列を取得する作業を
検索キーワードを変化させて200件ほど取得しようと考えております。
(当然200回googleへのアクセスとなります)
以下のコードをdo untilで実行し、
変数"hogehoge"には"URL;https://www.google.co.jp/search?q=(任意のキーワード)"を代入します。
(任意のキーワード部分は200種類あります。)
-------------------------------------
With Sheets("web").QueryTables.Add( _
Connection:=hogehoge, _
Destination:=web.Cells(1, 1))
.WebSelectionType = xlEntirePage
.Refresh BackgroundQuery:=False
.Parent.Names(.Name).Delete
.Delete
End With
-------------------------------------
Destinationであるweb.Cells(1, 1))には検索結果ページが丸ごと入るので、
ここから欲しい文字列を正規表現で抜き取り、別のセルに移し替えます。
これにより別のセルに欲しい文字列(10文字程度)がどんどん追加されるのですが、
40件前後の取得を実行すると様々な理解不能なエラー文が出てきて停止してしまいます。
エラー文の例
---------------------------------------------------
エラー1004
サイトへのリクエストが正しくありません
---------------------------------------------------
実行時エラー 91
オブジェクト変数またはwithブロック変数が設定されていません
---------------------------------------------------
エラーで止まった直後に再度実行しても同じエラーが出て動きませんが
VBAを完全に終了させて、2~30分放置した後何気なく開始してみるとまた動き始めて、
40件程度取得し始めますが、再度同じエラーで停止します。
何が何だかさっぱりです、、、
このような作業はVBAに向かないという事なのでしょうか?
それとも上記のコードになにかおかしな点があるのでしょうか?
apiを使うべきだとも考えておりますが是非この方法でなんとかしたいと考えております。
大変お手数ですがお分かりになる方ご教示願いませんでしょうか?
よろしくお願いします。
お礼
見事改善されました ありがとうございます。