Loop処理の中でコマンドキーにて、処理の一時停止と続行をさせるには?
例えば、処理の一時停止をPAUSEにし、処理の続行をCONTINUEの様なコマンドボタンにするとして
マルチスレッドにしないといけないと思う。
そしてVB6はマルチスレッドに対応していない。
なので、やり方を変えましょう。
一例。
Option Explicit
Private bAction As Boolean
Private Sub Form_Load()
bAction = True
End Sub
Private Sub cmdContinue_Click()
bAction = True
End Sub
Private Sub cmdPause_Click()
bAction = False
End Sub
Private Sub cmdTest_Click()
for 〜
If Not DoEvents2(Me.Name) Then
'処理中にユーザーがフォームを終了したらコントール等のアクセス禁止。
Exit Sub
End If
If bAction Then
' 処理
' Else
' '一時停止中に無駄なCPUパワー使用しないためにメッセージボックス出す方がいいか。
' MsgBox "一時停止中。" & vbNewLine & "解除するよ。"
' bAction = True
End If
Next
End Sub
Private Function DoEvents2(FrmName As String) As Boolean
Dim frm As Form
Dim bRet As Boolean
DoEvents
For Each frm In Forms
bRet = (frm.Name = FrmName)
If bRet Then
Exit For
End If
Next
DoEvents2 = bRet
End Function
ツイート | ![]() |