Microsoft Excel VBA - ユーザーフォームに進行状況を表示する方法

◆概要

このページは、このページは、Excel でユーザーフォームに進行状況を表示する方法について記載しています。

Progressバーコントロールを使うと、次のようにユーザーフォームに進行状況を表示することができます。

プログレスバー

◆手順1
まず、Visual Basic Editor画面に切り替え、ユーザーフォームを追加します。ユーザーフォームを追加するには、メニューから[挿入]-[ユーザーフォーム]を選択します。

◆手順2
ツールボックスの何もないところで右クリックし、「その他のコントロール」をクリックします。

ツールボックス

◆手順3
すると次のようなダイアログボックスが表示されるので、Microsoft ProgressBar Control versio5.0(またはMicrosoft ProgressBar Control 6.0)を選択状態にし。OKボタンをクリックします。

コントロールの追加ダイアログボックス

◆手順4
ツールボックスに追加されたProgress Barコントロールをクリックし、ユーザーフォームで適当な大きさになるまでドラッグします。

◆手順5
処理を実行するマクロで次のように記述します。
プログレスバーがあまりに早くすんでしまうときは、総件数 = 3000の数値を大きくしてください。

Sub ProgressBarTest()

    Dim 総件数 As Integer
    
    ' ユーザフォームの初期化
    UserForm1.Caption = "マクロ実行中"
    UserForm1.ProgressBar1.Value = 0        ' 初期値
    UserForm1.ProgressBar1.Min = 0          ' 最小値
    UserForm1.ProgressBar1.Max = 100        ' 最大値

    ' ユーザーフォームを表示する
    UserForm1.Show vbModeless
    ' 再表示
    UserForm1.Repaint
    
    総件数 = 3000
    Application.ScreenUpdating = False
    For i = 1 To 総件数 Step 1
        ' ここに繰り返し行なう処理を記述します。

        ' プログレスバーの値を設定
        UserForm1.ProgressBar1.Value = i / 総件数 * 100
        DoEvents
    Next i
    
    Application.ScreenUpdating = True
    ' UserForm1を非表示にする
    Unload UserForm1

End Sub


▼ページトップへ