![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
マクロでwebクエリをLoopしているのですが、20回ほど繰り返すと
”実行時エラー 1004 サイトへのリクエストが正しくありません”
と中断されてしまいます
30秒ほど待ってからデバックでリトライすると、また20回ほど繰り返して止まります
ネットで調べてみると、相手サーバーが連続での接続を拒否しているみたいです
そこでVBAでマクロが中断されたら30秒後にリトライしてくれるような形には出来るのでしょうか?
VBA初心者なので、中断した時の対処方法が全く分かりません
お願いいたします
No.2ベストアンサー
- 回答日時:
こんばんは。
>マクロでwebクエリをLoopしているのですが、20回ほど繰り返す
本来、基本的には相手のサーバーの状態を把握しなくてはなりません。
たぶん、負荷がかかりすぎてしまっているのだと思います。
これは、ネットの攻撃と同じ動きになっているように思うのです。
QueryTableをLoopで行うのなら、まず、アクセスの時間差を大きくとって、
Loop自体を遅らせる必要があると思います。
その場合は、Wait とかSleep とか使います。
モジュールの一番上部に、これを置いて
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
On Error Resume Next
Do
Call [Query Table Macro]
Sleep 5000 '5秒間隔または10秒
DoEvents
Loop Until Err.Number =0
On Error Goto 0
>VBAでマクロが中断されたら30秒後にリトライしてくれるような形には出来るのでしょうか?
実行時エラーがでたら、基本的には、そのままリトライしないほうが安全だと思います。
一旦、オブジェクトを解放して上げたほうがよいでしょう。
そのままですと、Excelが突然閉じてしまうか、フリーズになることがあるからです。
それから、Webクエリ自身で、再アクセスのタイマーは付いているようですね。
こんな方法も有るんですね
何とか2.5秒後に繰り返すことで上手くいきそうです
webクエリ自身の再アクセスのタイマーはよく判らないので
これで上手くいく間は、これで行きます
有難う御座いました
No.1
- 回答日時:
sub あなたのマクロ名()
on error goto errH
あなたのコード
exit sub
errH:
select case err.number
case 1004
application.wait (now + timevalue("00:00:30"))
call あなたのマクロ名()
case else
msgbox err.number & err.description
end select
end sub
では?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
-
4
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
5
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
EXCELのセルへ、デジタル時計を...
-
複数ファイルにある特定のシー...
-
マクロ 実行ボタンを押さずに...
-
Excel VBA のdebug(F8キー) が...
-
エクセル グラフの軸の最小値最...
-
Excelのワークシート上に検索窓...
-
モジュール内のマクロを全て実...
-
TeraTermのマクロについて
-
エクセルのマクロ機能で前のシ...
-
エラーになってないのにVBA...
-
ワードマクロで画像を選択する方法
-
Wordで「原稿用紙○枚」を換算す...
-
Excelを開いた時に表示さ...
-
Accessのマクロで「yes、no」の...
-
EXCEL 複数のシートの同一の位...
-
Excelマクロでオプションボタン...
-
エクセルで複数のシートをまと...
-
ワードで画像を自動で挿入する方法
-
《エクセル2000》非表示になっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
複数ファイルにある特定のシー...
-
Excel VBA のdebug(F8キー) が...
-
EXCELのセルへ、デジタル時計を...
-
エラーになってないのにVBA...
-
Excelを開いた時に表示さ...
-
Excelのワークシート上に検索窓...
-
【Excel VBA】エラー番号400
-
ワードからエクセルへ貼り付け...
-
Excelマクロでオプションボタン...
-
エクセルのマクロ機能で前のシ...
-
エクセルで複数のシートをまと...
-
Wordの画面を左右にスクロール...
-
エクセル グラフの軸の最小値最...
-
マクロ ブックをマクロなしでコ...
-
EXCEL 複数のシートの同一の位...
-
モジュール内のマクロを全て実...
-
Wordで「原稿用紙○枚」を換算す...
-
TeraTermのマクロについて
おすすめ情報