【Excel VBA】プログレスバーを作る

VBA

今回はプログレスバーのサンプルを紹介します。

作り方

まずはExcelでVisual Basicを開いてユーザフォームを作成します。

プログレスバーのコントロールを利用するためにツールボックスを右クリックし「その他のコントロール」を選択します。

「Microsoft ProgressBar Control, version xx」を選んでOKを選択します。

プログレスバーのコントロールが利用できるようになります。

ちょっとそれらしく作ってみました。

サンプル

以下はプログレスバーを表示するサンプルです。

20%毎に進捗を更新します。

Sub test()
        
    'プログレスバー最小値
    UserForm1.ProgressBar1.Min = 0
    'プログレスバー最大値
    UserForm1.ProgressBar1.Max = 100
    'プログレスバー初期値
    UserForm1.ProgressBar1.Value = 0
    
    'ユーザーフォームをモードレスで開く
    UserForm1.Show vbModeless
    'OSへ制御を移す(これをしないとラベルが表示されない)
    DoEvents
    
    '画面更新 無効
    Application.ScreenUpdating = False
        
    '処理1
    Call SetValuesAndProgressBar(20)
    '処理2
    Call SetValuesAndProgressBar(40)
    '処理3
    Call SetValuesAndProgressBar(60)
    '処理4
    Call SetValuesAndProgressBar(80)
    '処理5
    Call SetValuesAndProgressBar(100)
    
    'ユーザーフォームを閉じる
    Unload UserForm1
    
    '画面更新 有効
    Application.ScreenUpdating = True

End Sub

Sub SetValuesAndProgressBar(val As Integer)
    Dim i As Integer
    For i = 1 To 5000
        Cells(1, 1).Value = i
    Next
    UserForm1.ProgressBar1.Value = val
End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です