- ベストアンサー
VBAでUserFormでProgressBarとLabelを同時表示できない理由は?
VBAでUserFormをつかってProgressBarとLabelを同時に表示させる。つもりでしたが、ProgressBarが満たされた後Labelが表示されます。その理由と対策を教えて下さい。そのコードを以下に示します。 Sub a() With UserForm1 .Show vbModeless .Label1 = "始めのテキスト" End With s = 1 e = 20000 For i = s To e UserForm1.Label1 = "始めのテキスト" UserForm1.ProgressBar1.Value = i / e * 1000 Next i End Sub お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
理由の説明は面倒なのでやめときますが、 For i = s To e DoEvents UserForm1.Label1 = "始めのテキスト" UserForm1.ProgressBar1.Value = i / e * 1000 Next i のように DoEvents を入れることで解決できると思います。 ところで、 For i = s To e UserForm1.Label1 = "始めのテキスト" UserForm1.ProgressBar1.Value = i / e * 1000 Next i ↑これって UserForm1.Label1 = i / e * 100 & "% 終了" のようにしたいんじゃないんですか? UserForm1.Label1 = "始めのテキスト" のままでいいんだったらループの中に入れる意味が無いです。
その他の回答 (1)
- nishi6
- ベストアンサー率67% (869/1280)
Repaint を追加してみました。( *1000 は *100 ?) ExcelVBAでしょうか。 With UserForm1 .Show vbModeless .Label1 = "始めのテキスト" .Repaint End With S = 1 e = 20000 For i = S To e 'UserForm1.Label1 = "始めのテキスト" UserForm1.ProgressBar1.Value = i / e * 100 Next i
お礼
有難う御座います。
お礼
ありがとうございました。できました!