マクロはデータを処理するために作成されることが多く、データの処理には長い時間がかかることがよくあります。このため、一部のユーザーは、マクロが指定されたタスクをチャンクするのに忙しいにもかかわらず、コンピューターが応答を停止したと考える場合があります。

ほとんどのマクロ開発者にとっての解決策は、マクロの進行状況についてユーザーに何らかの方法で警告することです。 Excelでこれを行うには2つの方法があります。最も単純で最も一般的なアプローチは、ステータスバーを使用してマクロの実行内容を示すことです。次に示すように、ステータスメッセージを含む文字列をまとめて、その文字列をApplicationオブジェクトのStatusBarプロパティに割り当てるだけです。

sStatus = "Processing Input File - Please Be Patient"

Application.StatusBar = sStatus

メッセージを他のメッセージで上書きするまで、メッセージはステータスバーに残ります。完了率を指定して、ループの進行状況を示すこともできます。

For x = 1 to y     Application.StatusBar = Format(x/y,"0.0%") & " Complete"

' Other coding here Next

ルーチンが終了したら、次のステートメントを使用してステータスバーを通常の状態に戻します。

Application.StatusBar = False

マクロの実際の進行状況インジケーターを作成する場合は、ユーザーフォームを作成してからフォームを更新し、「パーセンテージバー」またはその他の視覚的なインジケーターを表示します。このタイプの進行状況インジケーターを希望するほとんどの人は、次のアドレスにあるJohnWalkenbachのソリューションのバリエーションに依存しています:

http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/

注:

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

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

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

link:/ excelribbon-Progression_Indicator_in_a_Macro [マクロの進行インジケーター]