【VBA】プログレスバーを表示する


処理の中でプログレスバーを読んで表示させる自分用メモ。
これが

こんな感じ。

以下ソース。





' 100 × 1000 のセルに「1000」と出力し続ける関数
Sub sampleProgram()

    Dim i As Integer            ' 行カウンタ
    Dim j As Integer            ' 列カウンタ
    Dim intNum As Integer       ' 出力する数字
    Dim intProgress As Long     ' プログレスバー

    ' プログレスバー最初は「0」
    intProgress = 0
    ' プログレスバーのあるユーザフォームを表示
    Call showProgress
    ' 処理開始
    intNum = 1000
    For i = 1 To 100
        For j = 1 To 1000
            ActiveSheet.Cells(i, j).Value = intNum
        Next
        ' 1行処理したらプログレスバーを一つ進める
        intProgress = intProgress + 1
        UserForm1.ProgressBar1.Value = intProgress
    Next
    ' ユーザフォームを消す
    Unload UserForm1
    MsgBox "処理終了"
End Sub

' プログレスバーを表示するユーザフォームを呼び出す関数
Sub showProgress()
    UserForm1.Show vbModeless
    UserForm1.ProgressBar1.Min = 0
    UserForm1.ProgressBar1.Max = 100

End Sub

' シートクリアするボタン
Sub shtClear()
    Cells.Clear
End Sub


参考文献

EXCELVBAでプログレスバーを作る