Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5286 / 13646 ツリー ←次へ | 前へ→

【51739】マクロ実行中にUserForm表示を更新する方法 はるか 07/10/3(水) 2:07 質問[未読]
【51741】Re:マクロ実行中にUserForm表示を更新する... DoEvents 07/10/3(水) 6:38 発言[未読]
【51743】Re:マクロ実行中にUserForm表示を更新する... はるか 07/10/3(水) 9:04 お礼[未読]

【51739】マクロ実行中にUserForm表示を更新する方...
質問  はるか  - 07/10/3(水) 2:07 -

引用なし
パスワード
   いま、UserFormのラベルに表示するものをマクロ実行中に
動的に更新したく思いまして、以下のコードを書いてみました。

Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)

Sub Test()
  Dim myTime
  Dim myRandom
  For i = 1 To 5
    myRandom = Rnd()
    UserForm1.Label1.Caption = myRandom
    Sleep (1000)
  Next i
End Sub

実際に実行すると、最後のmyRandomの値しか表示してくれません。
SleepのところにBreakを張れば5回分表示してくれます。

何とか、1秒ごとにLabel1の表示を更新することはできないでしょうか?
出来ないのはExcelの仕様でしょうか?

ご存知の方、ご教授ください。
宜しくお願いいたします。

【51741】Re:マクロ実行中にUserForm表示を更新す...
発言  DoEvents  - 07/10/3(水) 6:38 -

引用なし
パスワード
   DoEventsですね。

>Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
>
>Sub Test()
>  Dim myTime
>  Dim myRandom
>  For i = 1 To 5
>    myRandom = Rnd()
>    UserForm1.Label1.Caption = myRandom
>    Sleep (1000)
     DoEvents '追加
>  Next i
>End Sub

【51743】Re:マクロ実行中にUserForm表示を更新す...
お礼  はるか  - 07/10/3(水) 9:04 -

引用なし
パスワード
   >DoEventsですね。

ありがとうございます!できました。
しかし、たった一行とは。。。

5286 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free