通常、マクロを作成するときに最初に行うことの1つは、画面表示の更新をオフにするコマンドを使用することです。これは、画面を更新する必要がないときにマクロがより高速に実行されるためです。これが行われるとき、あなたができる最も重要なことの1つは、ユーザーにフィードバックを提供して、システムが昼食に出たと思わないようにすることです。

フィードバックを提供する一般的な方法は、ステータスバーを使用することです。 VBAを使用すると、これは次のようなコード行で実行されます。

Application.StatusBar = "Updating past months..."

この行により、「過去の月を更新しています…​__」というメッセージがアプリケーションプログラムのステータスバーに表示されます。このメッセージは、マクロまたはExcelのいずれかによってステータスバーに別のメッセージが書き込まれるまでそこに残ります。

ステータスバーのメッセージを消去したい場合は、2つの方法があります。 1つ目は、次のコードのように、ステータスバーに空の文字列を書き込むことです。

Application.StatusBar = ""

この場合、引用符の間に何もないので、空の文字列がステータスバーに表示され、以前にあったものはすべて消去されます。もう1つの方法は、次の行を使用することです。

Application.StatusBar = False

Application.StatusBarプロパティに論理値FALSEを書き込むと、以前にステータスバーに書き込んだ内容がすべて消去され、デフォルトのステータスバーのテキストが復元されます。

ステータスバーがオンになっている限り、ステータスバーの使用は問題ありません。 Excelは、ステータスバーがオフになるように、ユーザーがカスタマイズできます。これが行われている場合、ステータスバーにメッセージを表示することはできません。解決策は、メッセージを表示する前に、ステータスバーがオンになっていることを確認することです。

Application.DisplayStatusBarプロパティを使用して、ステータスバーの表示を制御できます。このプロパティを論理値(TRUEまたはFALSE)に設定すると、ステータスバーがオンまたはオフになります。

この種のプロセスをプログラムする方法の例として、次のコードを検討してください。

bStatusState = Application.DisplayStatusBar Application.DisplayStatusBar = True Application.StatusBar = "Updating past months..."

' ' Rest of program goes in here ' Application.StatusBar = False Application.DisplayStatusBar = bStatusState

このコードの最初の行は、ステータスバーの現在の値(TRUEまたはFALSE、オンまたはオフを意味する)を変数bStatusStateに割り当てます。

この同じ変数は、ステータスバーの状態を元の状態にリセットするために最後の行で使用されます。その間に、ステータスバーがオンになり、メッセージが表示され、後で消去されます。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2296)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Using_the_Status_Bar [ステータスバーの使用]