重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

下記のように、For文で各シートに設定してあるwebクエリを更新しています。
問題は、サイトによって更新中にExcelに拘束され他の操作ができなくなる(ネットブラウザで文字が打てなかったり、ページが開けなかったり)場合があります。
そこで、webクエリの更新をバックグランドで処理して、他の操作ができるようにするみたいなことはできるのでしょうか?詳しい方アドバイスよろしくお願いしますm(_ _)m


For i = 1 To MAX
Worksheets("シート名" & i).Range("B5").QueryTable.Refresh BackgroundQuery:=False
Next i

A 回答 (1件)

>サイトによって更新中にExcelに拘束され他の操作ができなくなる(ネットブラウザで文字が打てなかったり、ページが開けなかったり)場合があります



必ずしもできるとはいえませんが、OLEオートメーションとして、CreateObject("Excel.Application")として、組んで、Excelを、WScriptか、Excel VBAで、別に起動させたらいかがですか?そうしたら、本番で開けているExcelと別の動きをしても拘束することはないはずです。

ただ、ループするなら、次のシートに入る前に、少しSleepなどを入れて、余裕をもたせたほうが安全かな?

Sleep とは、Win32APIのことです。
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Sleep 2000 で、2秒です。(=秒/1000)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!