タイトル : Re: ループ途中で終了できない 投稿日 : 2008/02/22(Fri) 14:40 投稿者 : 魔界の仮面弁士
> クリックするたびにforループが進むプログラムにおいて > ループが終了しないうちに > (画面右上の)x印で終了すると、画面は消えます。 > しかしVBの■(終了)ボタンはまだ点灯しています。 > そして■を押すと(完全に)終了します。 ループ中で、フォームのプロパティやコントロールなどにアクセスしていませんか? もしそうであれば、アンロードされていたフォームが再ロードされている可能性があります。 (しかも、非表示なフォームとして) > これはしかたないことなのでしょうか? このようなコードでテストしてみたところ、即座に終了しました。 Option Explicit Private IsLoaded As Boolean Private Sub Form_Load() IsLoaded = True End Sub Private Sub Form_Unload(Cancel As Integer) IsLoaded = False End Sub Private Sub Command1_Click() Command1.Enabled = False Dim F As Integer F = FreeFile() Open "C:\a.txt" For Output As #F Dim N As Long Do While IsLoaded N = N + 1 If N Mod 500 = 0 Then Print #F, N End If DoEvents Loop Print #F, "終わり!"; Close #F End Sub |