tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。