' [299.xls] ' [Module1] のコード '★★☆ プログレスバーでマクロ進行状態を表示する ☆★★ Option Explicit Sub start() UserForm1.Show End Sub ' [UserForm1] のコード Option Explicit Private Sub CommandButton1_Click() Dim i As Integer Dim j As Integer 'ループの回数を設定(プログレスバーの動きが早いときは数字を大きくして下さい) j = 1000 '作業開始 j回繰り返す For i = 1 To j '時間のかかる作業をする(ここでは全くでたらめで無意味な計算式を入れてあります) If Int((i * 10 - i + 1) * Rnd + i) / i < i * 5 Then [E8] = j / i [E9] = Hex([E8]) '青色バーに見せかけた(Label)を 1/j 幅を大きくする Label2.Width = Label2.Width + Label1.Width / j '赤色バーに見せかけた(Label)を 1/j 幅を大きく、位置を左へ移動する Label4.Width = Label4.Width + Label1.Width / j Label4.Left = Label4.Left - Label1.Width / j 'ユーザーフォームの表示をリフレッシュ DoEvents Next i '時間のかかる作業に使ったセルの後かたずけ [E8:E9] = "" 'プログレスバーモドキを見えなくする Label2.Width = 0 Label4.Width = 0 Label4.Left = 154 End Sub Private Sub UserForm_Initialize() 'プログレスバーモドキの初期化 Label2.Width = 0 Label4.Width = 0 Label4.Left = 154 End Sub