【VBA】ステータスバーで進捗状況を表示する

エクセルVBAで使うコードの備忘録。VBAでエクセルのステータスバーにメッセージを表示して進捗状況などを確認する方法について。

スポンサーリンク

ステータスバーとは?

エクセルのステータスバーとは、ウィンドウの左下部分にあるメッセージが表示される部分のことを指します(図を参照)。普段はエクセルでの操作に応じて、空白だったり、何かメッセージが表示されていたりします。VBAを使用すると、個々の部分にどのようなメッセージを表示するかを簡単に制御することが可能です。

エクセルのステータスバー

ステータスバーは主に、計算に時間がかかる処理をVBAを使って行う際に利用します。VBAの実行中はエクセルが固まってしまって反応しなくなりますが、この状況が長時間続くとユーザーは本当に計算が行われているのか、エクセルがフリーズしてしまったのかわからなくなり不安になってきます。このような状況でステータスバーに、例えば「計算中…」みたいな表示がされていれば、フリーズしたのではないとユーザーは安心することができます。

ステータスバーにメッセージを表示する

ステータスバーにメッセージを表示するには、ApplicationオブジェクトのStatusBarプロパティに値を設定します。

Application.StatusBar = "[表示したいメッセージ]"

ステータスバーを利用する際に気を付けなければいけないのは、一度ステータスバーにメッセージを表示すると、それが上書きされたりしない限りはずっと表示されたままになっているという点です。プログラムを使ってステータスバーにメッセージを表示して、その後そのままにしておくと、何も関係のない作業をしているときもずっとそのメッセージが表示されたままになってしまします。

この状況を回避するには、ステータスバーに表示したメッセージが不要になった段階で、上記のプロパティにFalseを設定します。

Application.StatusBar = False

ステータスバーの表示がVBAでの処理自体に影響を及ぼすようなコードを書くことはほとんどないと思いますが、変なメッセージが表示されていると人間にとっては混乱のもとになるので、できる限り、ステータスバーを使い終わったらFalseを設定するように心がけましょう。