|
再現手順
新規ブックにユーザーフォーム(UserForm1)を作成してください。
このUserForm1には、チェックボックスを二つ配置します。
UserForm1−−−−−CheckBox1
CheckBox2
上記のUserForm1のモジュールには、
'===============================================================
Private Sub CheckBox1_Click()
' DoEvents
If CheckBox1.Value = False Then Exit Sub
Call testa
CheckBox1.Value = False
End Sub
'===============================================================
Private Sub CheckBox2_Click()
If CheckBox2.Value = False Then Exit Sub
Call testb
CheckBox2.Value = False
End Sub
'===============================================================
Sub testa()
Dim g0 As Long
Dim g1 As Long
For g0 = 1 To 10000000
g1 = g1 + 1
Next
End Sub
'===============================================================
Sub testb()
MsgBox "ok1"
End Sub
標準モジュールに
'===============================================================
Sub main()
UserForm1.Show
End Sub
として、mainを実行し、CheckBox1をクリックしてみてください。
チェックが付かずに処理が終わってしまいます。
(CheckBox2では、普通にチェックが付きますが)
DoEventsを付加すると処理中はチェックが付きます。
このような現象ですか?
Win2000&Excel2002で確認
|
|