プロが教える店舗&オフィスのセキュリティ対策術

accessVBAで下記のプログラムを作りました。
 使用OSはXP、ソフトはaccess2003です

Private Sub コマンド2_Click()

Me.コマンド2.Caption = "計 算 中 で す"
Me.コマンド2.ForeColor = 255 ' 赤に

For i = 1 To 10000000
aa = 2 ^ 20
Next

Me.コマンド2.Caption = "待 機 中 で す"
Me.コマンド2.ForeColor = 8421376 ' 緑に

End Sub

"待 機 中 で す" ・・・は変更されますが、最初の"計 算 中 で す"は変更されません。

「コマンド2」をクリックした直後に、"計 算 中 で す"・・・と表示させたいのですが、
どうすれば良いでしょうか?

A 回答 (2件)

Me.コマンド2.Caption = "計 算 中 で す"


Me.コマンド2.ForeColor = 255 ' 赤に
Me.Repaint ' ★この記述を追加

のようにしてみて、どうなりますか。
    • good
    • 0

画面を変更しても「変更イベント」が処理されるまで


何も変化しません。処理が終わって、Subを抜けた
時に溜まったイベントが一気に処理され、最後に
変更した"待機中です"だけが結果として見えます。

途中でイベントを消化させるにはDoEventsを実行
します。但し、このステートメントはイベントを反映
するため、危険を伴うこともあります。

とりあえず、最初の2個の命令後にDoEventsを
置けばよいでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!