アプリケーションとしてのVBA
フォームのモードレス表示を使って進捗を表示させる
◆フォームのモードレス表示を使って進捗を表示させる
フォームを使用してプログレスバーを表示する方法を紹介します。
普通はフォームを表示すると実行制御がフォーム側に移ってしまうのですが、
モードレス表示を使う事で、実行制御が呼び出した側にすぐに戻ります。
フォームは表示されたままです。
具体的には、
UserForm1.Show vbModeless
とします。
モードレス表示は Excel2000以降で可能です。
Sub ModelessProgress()
Dim Max_Scare As Integer
Dim i As Integer
Dim WaitTime As Single
Dim BarWidth As Single
Load UserForm1
With UserForm1
With .Label3
.Top = 1
.Left = 1
.Width = 0
.BackColor = &H800000
End With
BarWidth = .Frame1.Width - 6
End With
UserForm1.Show vbModeless
Max_Scare = 100
For i = 1 To Max_Scare
WaitTime = Timer
While Timer - WaitTime < 1
DoEvents
Wend
UserForm1.Label3.Width = BarWidth * i / Max_Scare
Next
Unload UserForm1
End Sub
サンプルをダンロードして確認してください。