"マクロエラーのクリア" アクションは、MacroError オブジェクトに格納されている、エラーに関する情報をクリアするために使用します。
注: "マクロエラーのクリア" マクロ アクションは、Access Web App では使用できません。
設定
"マクロエラーのクリア" アクションには、引数はありません。
解説
-
マクロでエラーが発生すると、エラーに関する情報は MacroError オブジェクトに格納されます。 "エラー時" アクションを使用してエラー メッセージを抑制していない場合、マクロが停止して、標準のエラー メッセージにエラー情報が表示されます。 一方、"エラー時" アクションを使用してエラー メッセージを抑制している場合は、条件またはカスタム エラー メッセージで MacroError オブジェクトに格納されている情報を使用できます。
エラーの処理が完了すると、MacroError オブジェクト内の情報が古くなるため、"マクロエラーのクリア" アクションを使用してオブジェクトをクリアすることをお勧めします。 このようにすると、MacroError オブジェクト内のエラー番号が 0 にリセットされ、オブジェクトに格納されているエラーに関するその他の情報 (エラーの説明、マクロ名、アクション名、引数など) がクリアされます。 この方法で、MacroError オブジェクトを後でもう一度調査して、別のエラーが発生していないかどうかを確認できます。
-
MacroError オブジェクトはどのマクロが終了したときも自動的にクリアされるため、マクロの終了時に "マクロエラーのクリア" アクションを使用する必要はありません。
-
MacroError オブジェクトには、一度に 1 つのエラーのみに関する情報が入ります。 つまり、マクロで複数のエラーが発生した場合、MacroError には、最後のエラーに関する情報のみが入っています。
-
VBA モジュールで "マクロエラーのクリア" アクションを実行するには、DoCmd オブジェクトのマクロエラーのクリア メソッドを使います。
使用例
次のマクロは、"エラー時" アクションを "次へ" 引数と一緒に使用してエラー メッセージを抑制してから、"フォームを開く" アクションを使用してフォームを開きます。 この例では、前のレコードに移動するために "レコードの移動" アクションを使用して、エラーを意図的に作成しています。 [MacroError].[Number]<>0 という条件で MacroError オブジェクトをテストしています。 エラーが発生していれば、エラー番号は 0 以外の数字になり、"メッセージボックス" アクションが実行されます。 メッセージ ボックスにエラーの原因となったアクションの名前が表示され (この例では "レコードの移動" アクション)、エラー番号が表示されます。 最後に、"マクロ エラーのクリア" アクションで MacroError オブジェクトをクリアしています。
条件 |
操作 |
引数 |
エラー時 |
移動先: "次へ" |
|
フォームを開く |
フォーム名: CategoryForm ビュー: "フォーム" ウィンドウモード: "標準" |
|
レコードの移動 |
オブジェクトの種類: "フォーム" オブジェクト名: CategoryForm レコード: "前へ" |
|
[MacroError].[Number]<>0 |
メッセージボックス |
メッセージ: ="エラー # " & [MacroError].[Number] & " (" & [MacroError].[ActionName] & " アクション)" 警告音: "はい" メッセージの種類: "情報" |
マクロ エラーのクリア |