お世話になります。
progressbarを表示するために、
重たい処理のループの中ではDoEventsを入れることで表示ができているのですが、
ループとループの間でprogressbarを更新するには、どのようにしたらよろしいでしょうか?
***** 現状
for i =1 to 9999
重い処理
Frm_ProgressBar.ProgressBar1.value = 進捗数
DoEvents
next i
***** やりたいこと
for i =1 to 9999
重い処理A
next i
Frm_ProgressBar.ProgressBar1.value = 進捗数
DoEvents
for i =1 to 9999
重い処理B
next i
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No.2です。
ProgressBarは本来DoEvents()やRefreshで更新しなくてもValueの値を更新すると表示も更新される作りになっています、表示が更新されないのは「進捗数」が変化していないことが考えられます、そのあたりの確認をしてみてください。
No.2
- 回答日時:
Refreshメソッド
Frm_ProgressBar.ProgressBar1.value = 進捗数
Frm_ProgressBar.ProgressBar1.Refresh
この回答への補足
回答ありがとうございます
でも、ダメでした
Refreshメソッドで表示が反映される前に、次のループに入ってしまい、
結果、描画は更新されませんでした。
No.1
- 回答日時:
Q、VB6 DoEventsの代わりは?
A、やはり、DoEvents。
Frm_ProgressBar.ProgressBar1.value = 進捗数
For i =1 To 9999
重い処理B
If Frm_ProgressBar.ProgressBar1.value <> 進捗数 Then
DoEvents
End If
Next i
と、普通はこんな感じです。が、何となく違和感を感じます。
もしかしたら、要求されているのは、次のようなコードなんでしょうか?
Frm_ProgressBar.ProgressBar1.value = 進捗数
Do
DoEvents
Loop Until Frm_ProgressBar.ProgressBar1.value = 進捗数
For i =1 To 9999
重い処理B
Next i
いずれにしろ、次のコードですと問題が解決されます。
Frm_ProgressBar.ProgressBar1.value = 進捗数
For i =1 To 9999
重い処理B
DoEvents
Next i
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBA ステータスバー DoEvents 1 2023/03/30 12:22
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
DoEventsがやはり分からない
Visual Basic(VBA)
-
DoEvents関数って何?
Visual Basic(VBA)
-
VB6で、長い時間かかる処理実行中の表示の工夫について
Visual Basic(VBA)
-
-
4
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
5
VB.NET版のDoEvents()を探しています
Visual Basic(VBA)
-
6
ExcelVBAのDoEventsによるエラー?
Visual Basic(VBA)
-
7
VB6のAttribute VB_Nameの意味について
Visual Basic(VBA)
-
8
VB6でマルチスレッド?
Visual Basic(VBA)
-
9
PLCとPCの通信
Visual Basic(VBA)
-
10
VB.NETでMessageBoxが表示されない?
Visual Basic(VBA)
-
11
VB.NETでMSComm が追加できず?
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
メルカリのメルカードで買い物...
-
VBAでループ内で使う変数名を可...
-
DoEventsがやはり分からない
-
findは動くがfindnextがマクロ...
-
【Excel】特定の文字を含むセル...
-
セルの値が0はクリアするマクロ
-
switch の範囲指定
-
NULLを含むフィールド値の条件分岐
-
FFTの結果ついて
-
インタラクティブの反対語は?
-
リョウ・・・量?料?
-
取り消し線が入った文字を削除...
-
Select Case文でこのようなこと...
-
VBの質問#if 0 then ってどう...
-
VBAの処理待ち画面について
-
VB.NET Excelを読み込んでDataT...
-
CPUを二個積めば処理速度は...
-
50代の男性の方に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
DoEventsがやはり分からない
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
VBの質問#if 0 then ってどう...
-
VBAでCOPYを繰り返すと、処理が...
-
EXCEL VBA マクロ 実行する度に...
-
findは動くがfindnextがマクロ...
-
インタラクティブの反対語は?
-
UMLでの例外処理
-
リョウ・・・量?料?
-
Do~Loopした回数をカウントしたい
-
セックスレスの既婚女性は自慰...
-
月度は何て読みますか?
-
セルの値が0はクリアするマクロ
-
Loadイベント中にほかのイベン...
-
FFTの結果ついて
おすすめ情報