他の人が私のワークブックを使用していて、マクロが失敗した場合に問題に対処しやすくするエラーハンドラーを作成するときに使用する簡単なテクニックがあります。リスクのあるすべてのプロシージャには、ローカル文字列変数sOpが含まれています。この変数の値は、マクロコード中に次のように設定されます。

Dim sOp As String ...



...

sOp = "opening target file"

...



...

sOp = "counting lines already filled"

...



...

sOp = "copying source data table"

...



...

sOp = "saving and closing"

...

これらのステートメントは、コメントとして入力するだけですが、エラーが発生したときに、その時点で何が起こっていたかをユーザーに通知できるという利点があります。最も単純なエラーハンドラーには、次のような単一のステートメントを含める必要があります。

MsgBox "Procedure MyMacro failed while " + vbCrLf + sOp

sOpの値を使用して、次のアクション(再開、終了など)を決定することもできます。独自のマクロでこの手法を使用すると、マクロのデバッグが容易になり、ユーザーにとってより使いやすくなります。

注:

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

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

このヒント(9577)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。