VBAではステータスバーにメッセージを表示できます。
マクロの実行状況や状態を表示することで、マクロの動きがユーザーにもわかりやすくなりますので、マクロの作成に慣れてきたら活用することをオススメします。
それでは、サンプルコードと合わせて解説していきます。
ステータスバーにメッセージを表示する
サンプルコード
1 2 3 4 5 6 | Sub ステータスバーにメッセージを表示() ' ステータスバーにメッセージ表示 Application.StatusBar = "ステータスバーにメッセージを表示します。" End Sub |
実行結果
解説
ステータスバーの操作にはApplicationオブジェクトのStatusBarプロパティを使用します。
StatusBarプロパティに値を設定することでステータスバーに文字列を表示することができます。
Application.StatusBar = 任意の値
サンプルコードでは『ステータスバーにメッセージを表示します。』と設定(文字列は””で囲みます)
文字列だけでなく、変数や値なども設定することができるので進捗(パーセントやプログレスバーなど)を表示することも可能です。
(進捗表示については【応用編】にて紹介しています)
ステータスバーの復元
ステータスバーに表示したメッセージは、何もしなければ保持されたままになります。
マクロの動作完了後にステータスバーを元に戻したい場合は、”False” を設定することで解除が可能です。
サンプルコード
1 2 3 4 5 6 | Sub ステータスバーを復元する() ' ステータスバーを既定の設定に復元 Application.StatusBar = False End Sub |
実行結果
【応用編】進捗を表示する
ループを利用して進捗を表示してみましょう。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Sub ステータスバーに進捗表示() Dim i As Long Dim r As Long r = 500 ' ループ回数 ' r回数ループ For i = 0 To r Application.StatusBar = "進捗状況:" & i & "/" & r & "(" & (i / r) * 100 & "%)" Next ' ステータスバーを既定の設定に復元 Application.StatusBar = False End Sub |
実行結果
時間のかかる処理は『応答なし』となる場合があり、動作状況がわからなくなるため、進捗表示することをオススメします。
※ステータスバーが更新されない場合は、ループ回数(r)を増やしてください。
※パーセントではなく”■”を使うことでプログレスバーのように表示することも可能です。