vb.netでのtimerのようなものをやりたくてvbaでプログレスバーを使用して経過状況を表示するプログラムを作りました。プログレスバー自体での視覚的な経過状況表示はできたのですが、現在のパーセンテージをlabelに表示することができません。
Private Sub CommandButton4_Click()
Dim i As Long
Application.Visible = False
i = 1
For i = i To 1000000
UserForm1.ProgressBar1.Value = i / 1000000*100
UserForm1.Label1.Caption =UserForm1.ProgressBar1.Value
i = i + 1E-44
Next
Application.Visible = True
End Sub
上記のようにするとプログラム終了時にlabel1に現在のプログレスバーの値が表示されますが、進行中には表示されないのです。これを進行中も表示させるにはどうしたら良いのでしょうか?
No.1ベストアンサー
- 回答日時:
こういう場合、UserForm1.RefreshまたはDoEventsを使うと良い。
Refreshは画面(ここではユーザフォーム1)を再描画するもの、DoEventsは現在のスレッド実行中に別のWindowsメッセージを処理させるというものだ。DoEventsを使う場合、画面再描画以外のイベントも処理してしまうので、若干の注意が必要だ。
Private Sub CommandButton4_Click()
Dim i As Long
Application.Visible = False
i = 1
For i = i To 1000000
UserForm1.ProgressBar1.Value = i / 1000000 * 100
UserForm1.Label1.Caption = UserForm1.ProgressBar1.Value
DoEvents
i = i + 1E-44
Next
Application.Visible = True
End Sub
試してないのでうまくいかなかったらごめん。
回答ありがとうございました。
repaintというものを初めて知りうれしいです。今回の環境では処理速度に影響がないのでdoeventsをしようしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PCで「使用可能な場合はグラフ...
-
NVIDIAのシェーダーキャッシュ
-
最前面に無理やりフォームを持...
-
MFCのタイマーのつかい方を教え...
-
C#のタブコントロールについて...
-
ClistBoxでオーナードローがよ...
-
MFCでOnPaintのタイミング
-
VC++プログラムをつかったBMP画...
-
VB6,リストボックスの特定行の...
-
ドローソフトのダブルバッファ...
-
InvalidateRectの使い方について
-
GetGlyphOutline() ご利用経験...
-
当たり判定
-
陰関数のグラフを表示させるには
-
Pythonによる物理の斜方投射の...
-
CS_HREDRAW|CS_VREDRAWについて
-
扇形などを描く方法
-
OpenGLでの描画のタイミング
-
グラフの交点の求め方(Excel)
-
「アイテムは収集されました」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6,リストボックスの特定行の...
-
[VB.net] DataGridViewの列ヘッ...
-
NVIDIAのシェーダーキャッシュ
-
MFCでOnPaintのタイミング
-
TextBoxに文字を書いても表示さ...
-
word
-
UpdateData( FALSE); による文...
-
VC++プログラムをつかったBMP画...
-
InvalidateRectの使い方について
-
OneNote 2010 文字と描画がずれる
-
StretchBlt関数について
-
C# ラバーバンドの描画を快適に...
-
エクセルでガンチャートを作成...
-
C++にて、塗りつぶされた円を描...
-
VBAにGDI+を参照させる方法
-
GDI+で高速な描画
-
MFC DrawText 背景色とフォント
-
FlexGridの一部のみ表示を更新...
-
MFCのタイマーのつかい方を教え...
-
Labelの文字をスクロールする際...
おすすめ情報