投稿日 | : 2005/04/22(Fri) 10:48 |
投稿者 | : 花ちゃん |
Eメール | : |
URL | : |
タイトル | : Re^5: DoEventsについて |
貴方は1回1回質問内容が違うように思いますが。
No.2985 では下記のように書いていましたよね
> 動作として、CommandButton1を押した際に
> CommandButton1、CommandButton2共にEnabledがFalse表記に描画される
> …のつもりなのですが
> 実際にはCommandButton2のEnabled表記はずっとTrueのように見えています。
CommandButton2のEnabled表記はずっとTrue というのは
CommandButton1.Enabled = False
CommandButton2.Enabled = False
DoEvents
このようにすれば解消されたはずです。
それがNo.2990では下記のように言って。
> ループが終わるまで DoEvents が実行されないという事ですが
> 実際それは構わないです。
又、違う事を言っているし
> 問題はメッセージボックスが開いた状態までいっているのに
> ボタンのEnabled表記がFalseのままという事でして
その前にTrue にどこかで設定していますか?
私は、そのように貴方がコードを書いたものと判断しておりました。
(処理が終了したら MsgBox を表示して OK が返ったら ボタンを True に
する仕様)
ループが終わったらすぐにボタンをTrue にしたければ なぜ、MsgBox を表示する前に
書かないのですか?
だい さんが回答されているように DoEvents とは何の関係もない事です。
下記で試して見て下さい
Private Sub CommandButton1_Click()
Dim i As Integer
CommandButton1.Enabled = False
CommandButton2.Enabled = False
DoEvents
For i = 1 To 10000
Me.Cells(i, 1) = 1
Next
CommandButton1.Enabled = True
CommandButton2.Enabled = True
MsgBox "終了"
End Sub