タイトル | : Re: ループ途中で終了できない |
記事No | : 11516 |
投稿日 | : 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
|