![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
現在、VBAに以下のようなコードを記述しています。
(詳細は省略しています)
=========================
sub IE自動実行()
Dim myCnt As Long
For myCnt = 1 To 5
詳細コード/ここから
詳細コード/ここまで
Call Shell("taskkill /im iexplore.exe /F")'ここで強制終了
Next myCnt
End Sub
=========================
上記のように、同じ処理を5回繰り返すように記述していますが、
IEがbusy状態になった時に一旦IEを強制終了させて、
再開するようにしています。
しかし、「'ここで強制終了」のコードに到達する前に、
busy状態でIEが止まってしまうことが多々あります。
そこで、
「Dim myCnt As Long」から
「Next myCnt」までの間の処理を進めている過程で、
30秒を経過したらIEを強制終了するようにしたいです。
つまり、
Call Shell("taskkill /im iexplore.exe /F")
のコードに到達する前に処理が止まってしまっても、
開始から30秒を経過してしまったら、
IEを強制終了して、
「For myCnt = 1 To 5」に戻れるようにしたいのです。
恐れ入りますが、どなたかお分かりの方がおられましたら、
ご教授いただけましたら幸いです。
宜しくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
No1です。
真の原因が何かわからないし、質問者様がどのようなコードで処理をしているのか不明な状態で、
>どのように記述すればよいか、
とだけ言われても・・・
方法は簡単で、最初に時刻を取得してそれにタイムアウトの設定時間をプラス。
ループの中でその時刻とタイムアウトを比較してオーバーしてれば、ループを抜けるだけ。
・・・なんだけれど、それが当てはまるようなコードを質問者様がつかっているのかどうかすら不明なので、部分的にコードを書いたところで「うまくいきません」とか言われるのが毎度のオチなので。
(この手の雰囲気だと「うまくいかない」以外の情報が得られないことが多いので)
>どうしても見つけられません。
え~~!!
試しに、VBA IE タイムオーバー あたりをキーに検索してみましたけれど、上位10個くらいの中にいくつも見つかりましたけど・・・???
No.1
- 回答日時:
こんにちは
>コードに到達する前に処理が止まってしまっても
止まっているという事象がどのような状態を指しているのかわかりませんが、確か、VBAはシングルスレッドのはずなので、本当に停止しているのなら他の処理を行うことは無理と考えられます。
実際の処理内容が不明ですが、想像するところ、単に、busyからの開放待ちのループを抜けてこないだけとかではないのでしょうか?
もしそうなら、ループ内で経過時間を測って、タイムオーバーなら抜けるように制御すれば良いだけでと思いますが?
(探せばサンプルもありそうな気がしますが‥)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Visual Basic(VBA) VBA ステータスバー DoEvents 1 2023/03/30 12:22
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
VBAでセルに値が入力されるまで...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
リョウ・・・量?料?
-
メルカリのメルカードで買い物...
-
ビープ音を連続して鳴らす
-
FFTの結果ついて
-
ハードウェア処理とソフトウェ...
-
50代の男性の方に
-
UMLでの例外処理
-
Loadイベント中にほかのイベン...
-
Access 日付/時間型を検...
-
再帰処理を途中で抜けるには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
DoEventsがやはり分からない
-
EXCEL VBA マクロ 実行する度に...
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
もしかして
-
UMLでの例外処理
-
findは動くがfindnextがマクロ...
-
インタラクティブの反対語は?
-
VBA SaveChanges 上書きされない
-
リョウ・・・量?料?
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
-
FFTの結果ついて
-
Select Case文でこのようなこと...
おすすめ情報
回答ありがとうございます。
>ループ内で経過時間を測って、タイムオーバーなら抜けるように制御
上記のサンプルコードを探したのですが、
どうしても見つけられません。
どのように記述すればよいか、
教えていただけないでしょうか。