| 
    
     |  | VBA初心者です。 
 Excel2007で下のプログラムを作ってみました。
 
 このプログラムの動作中に任意のセルに書き込みを行うと
 プログラムの途中でカウントが停止します。
 セルへのダブルクリックでも同様の結果になります。
 どうもDoEventsからプログラムに制御が戻ってこないようです。
 プログラムには排他処理を入れていませんが、多重起動はして
 いませんし、他のプログラムも存在しません。
 
 カウントアップしながらキー入力できれば希望の動作となる
 のですがDoEventsの使用方法を間違えているのでしょうか。
 その場合どのような関数を使えば良いのか教えてください。
 
 Option Explicit
 
 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
 Public Sub test()
 
 Worksheets("Sheet1").Cells(1, 1).Value = 0
 
 While Worksheets("Sheet1").Cells(1, 1).Value < 60
 
 Worksheets("Sheet1").Cells(1, 1).Value = _
 Worksheets("Sheet1").Cells(1, 1).Value + 1
 
 DoEvents
 
 Sleep (100)
 
 Wend
 
 End Sub
 
 
 |  |