- ベストアンサー
for loop の処理が途中でプログラムを終えてもつづいてしまうのをやめさせるには?
BLUEPIXYの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>エクスプローラーの右上のバツボタンを押すと >for loopが終わるようにしたいんです。 多分、忙しくてなかなか終われないだけだと思います。 >バツボタンが押された とかは、普通イベントで取得するのだと思いますが、 プログラム自体が、忙しすぎるとそれができません。 ×ボタンが押された時、は終了手続きが自動で行われる(はず)なので、特別になにかをする(その上で何かの終了手続きをするのでなく単に終了するのが目的なら)必要はありません。 DoEventsもあることだし、その内終了してくれると思います。
関連するQ&A
- オブジェクト変数または With ブロック変数が設定されていません。
下記の様に組みましたが、下記の★印の所で止まる様な事があります。 毎回止まるわけではないのですが、止まる時に「オブジェクト変数または With ブロック変数が設定されていません。」と表示されますが、 原因は何か?どの様にすればいいのか?など詳しく教えてください。 よろしくお願いします。 Sub test() Dim objIE As Object Dim strCOMMENT As String Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'データをセットする 'htmlドキュメント フォーム(0番目) アイテムに転記(代入)する objIE.Document.forms(0).Item("username").Value = "11111" objIE.Document.forms(0).Item("password").Value = "11111" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.subm.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'タイトル・コメントの読み込み strtitle = Sheets("sheet1").Range("k7") strCOMMENT = Sheets("sheet1").Range("k9") Application.WindowState = xlMinimized While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.forms(0).Item("title").Value = strtitle objIE.Document.forms(0).Item("comment").Value = strCOMMENT While objIE.readystate <> 4 While objIE.busy = True DoEvents ' Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.submit.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'フォーム(0番目)を .Submit(確認) する objIE.Document.forms(0).getElementsByTagName("input")(11).Click '←★この部分で止まる時があります。 While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 7, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Quit '.Quitで閉じる End Sub
- ベストアンサー
- Visual Basic
- タイムストッププログラム
お世話になります。 コマンドボタン2をおしても タイムがとまらないんですが・・・ なぜでしょうか? Private Sub Command1_Click() Dim k As Integer Dim NOW As Long For k = 1 To 1000 Text1.Text = k NOW = Timer While Timer < NOW + 1 '1秒間待機する DoEvents Wend If Command2.Value = True Then Exit For Next k End Sub
- ベストアンサー
- Visual Basic
- loopを抜け出すには Exit Forですが
loopを抜け出すには Exit Forですが loopの次のサイクルに行くには? For i=1 to 10 . Exit For . . Next i 今、i=5を実行中とします 以下の処理をスキップして i=6に行くには、なにかありませんか 普通はIf文で処理するとおもいますが
- 締切済み
- オフィス系ソフト
- Java Generics の Enhhanced for-loop におけるメリット
私自身JAVAに明るくないのですが、なぜか更に分かっていない人にプレゼンをすることになってしまいました。プレゼン内容は「JAVAプログラム・コーディングでGenericsを使用するメリット、デメリット」で、Enhhanced for-loop のケースということで……。ネットで色々調べて、メリットとしては「Genericsを使いこなすと、Java言語プログラム・コードを大幅に簡略化できる」ということは分かりましたが、その他のメリットやデメリットなどがよく分かりません。(loopが始まると途中で止められない?というようなことが分かったような分からないような) どなたか、素人でも分かるように単純明快に解説して下さい or 解説しているサイトを教えて下さい! どうかよろしくお願いします!
- ベストアンサー
- Java
- LOOP処理について
条件に当てはまる値を10件SELECTし、 INSERTしたいのですが試せる環境がなく確認できない状態です。 もしテーブルを全件みて該当データがない場合も処理終了と したいのですが下記のような書き方でよいのでしょうか? どなたかご助言いただけないでしょうか?お願いします。 BEGIN WHILE (10=i) LOOP SELECT A INTO AA FROM TBL_A WHERE A = "xxx" INSERT INTO TBL_B (A_ID)VALUES(AA) EXIT WHEN (10=i) ; END LOOP; DBMS_OUTPUT.PUT_LINE('呼び出されます'); END;
- ベストアンサー
- Oracle
- Do whileとFor文の脱出処理について
はじめまして。 VBについて素朴な質問なのですが For…Nextから抜けるにはExit for を使いDo…Loopから抜けるにはExit Doを使用しますが以下の場合はFor文の中でExit doを使用するのは可能なのでしょうか? Do while(条件) for i=1 to 12 if 条件 then exit do end if 処理1 next i 処理2 loop 本来ならfor文の中ではExit forを使用しますがfor文はDo while文 の中に含まれていますのでExit doでも出れると思ったのですがそうではないのでしょうか?ご回答よろしくお願いします。
- 締切済み
- Visual Basic
- プログラムを一定時間とめるコードの際に24時をまたぐととまらないようにするには?
お世話になります。 以下のコードだと24時をまたぐ際に プログラム自体が停止してしまうんでうバグがあるんですよね。ちょっと解決方法がおもいつかないので 詳しい方教えて下さい。よろしくお願いします。 st = Timer Do While Timer - st < 3 DoEvents Loop
- ベストアンサー
- Visual Basic
- vb2005でプログラムをとめるコードは?
お世話になります。 vb2005でプログラムに5秒間、時間をとめようとおもいます。 これだとTimerにエラーがでてしまいます。 ('Timer' は型です。有効な式ではありません。) どこをどうなおせばエラーがでなくなるのでしょうか? 教えてください。お願いします。 Dim sngSt As Single sngSt = Timer Do While Timer - sngSt < 5 DoEvents() Loop
- ベストアンサー
- Visual Basic
- VB2005 Do Loopについて
VB2005 でDo Loopを使用していますが、このDo Loop内の処理をしている時にイベント(例えばボタンをクリック)が発生した場合、その処理をしたいのですがどうすれば良いでしょうか? VB6の時は、DoEventsを使用していましたが、VB2005でも使用できるのでしょうか? ご存知の方がいらっしゃいましたら、教えて頂きたいのですが。 よろしくお願いします。
- 締切済み
- Visual Basic
- プログラムの処理速度について
プログラムの繰り返し文(WhileやFor)の処理速度 は、マシンの何で決まるのでしょうか? WinXPでは1秒間に100回処理したにもかかわらず Win7では1秒間に1回しか処理せず、とても遅くて 困っています。 何か情報ある方、回答よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
お礼
あぁ、そうなんですか。 以前、単に×ボタンをおしただけだと for loopが終わらないとおしえてもらったのですが・・・ どうやら勘違いだったようですね。 ありがとうございます。