| 
    
     |  | 再現手順 
 新規ブックにユーザーフォーム(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で確認
 
 |  |