Excel VBA で処理中断(DoEvents)ができなくて困ってい
Excel VBA で処理中断(DoEvents)ができなくて困っています。
まず、CommandButton1ボタンでSampleをコールし、Sample処理の中でループを廻し、途中でCommand1ボタンをクリックして、処理中断(DoEventsによって)をいれたいと思っています。
しかし、Command1ボタンをクリックしても処理中断がきかないのです。
グローバル変数fStopにはCommand1ボタンをクリックしたときにTrueが入っていることは、MsgBoxで確認していますが、Sample処理の方に値がつたわっていないようで、ループが最後まで止まりません。
コードが悪いのでしょうか、それとも、DoEventsの使い方が悪いのでしょうか。
もし、DoEventsが使えないのであれば、代替手段はありますでしょうか。
(長時間の印刷中の処理中断に応用したいと思っています)
環境はExcel 2002 SP3 , VB 6.0 , Windows XPです。
なお、DoEventsのコードは以下のURLを参考にして作成しました。
http://officetanaka.net/excel/vba/function/DoEvents.htm
コードは以下のとおりです。
'*********
Dim fStop As Boolean 'グローバル変数を宣言
'*********
Sub Sample()
Dim i As Long
fStop = False
For i = 1 To 1000000
DoEvents
If fStop = True Then
MsgBox "処理が中断されました"
Exit For
End If
Next i
End Sub
'********
Private Sub CommandButton1_Click()
Call Sample
End Sub
'********
Private Sub Command1_Click()
fStop = True
MsgBox "fStop=" & fStop
End Sub
お礼
有難うございます、それでしてみます。