Excelで提供されるマクロ言語(VBA)は非常に強力です。これは、その言語でかなり激しい(そして印象的な)タスクを実行できることを意味します。一部のタスクは、完了するまでにかなり時間がかかる場合があります。問題は、マクロが実行されていることを画面に表示しない限り、一部のユーザーがコンピューターがハングしたと考える可能性があることです。

このようなタスクの解決策に取り組むには、2つの方法があります。最初の(そして最も単純な)オプションは、ステータスバーを使用してマクロの進行状況を示すことです。たとえば、完了率を決定するコードをマクロに追加できます。パーセンテージが手元にあると(たとえば、xPctComp変数に格納されている場合)、マクロに次の行を追加するだけです。

Application.StatusBar = "Portion completed: " & _   Format(xPctComp, "##0.00%")

このような行は、マクロの本体内、たとえば処理を制御するループ内に追加できます。マクロがほぼ完了したら、次のようにステータスバーをクリアする行を追加する必要があります。

Application.StatusBar = ""

進行状況インジケーターを作成するもう1つの方法は、完了率に関する「残量ゲージ」インジケーターを表示するダイアログボックスを使用することです。そのような概念の多くの実装がすでにWeb上で利用可能です。このアプローチの良い代表は、ジョン・ウォーケンバッハのサイトにあります:

http://www.j-walk.com/ss/excel/tips/tip34.htm

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

このヒント(2496)は、Microsoft Excel 97、2000、2002、および2003に適用されます。