エラー処理は On Error を使えば解決、というものではない。入力項目に対しての項目チェック、データベースの更新時のエラーの処理など、考えておかなければならない。

エラーチェックの契機はイベントの発生である。主に次の3つだろう。
1-1.ユーザーがイベントを明示的に実行した際行うもの:ボタンを押下するケースなど
1-2.ユーザーがイベントを意識していないが、アプリケーションがハンドリングするもの;入力値によって他のリストボックスを更新する、ケースなど
1-3.時間の周期で自動実行するもの:Webから定期的にデータを取得するケースなど

エラーチェックが行われる際の表示画面は
・フォーム
・シート
で、表示をしていないケースはあまりないだろう。

それぞれにおいて、エラーの表示のさせ方を決めておく必要がある。例えば次のようなことを決める必要がある。<表示方法>
・フォームなら、エラーはメッセージボックスにひとつだけ出す。
・シートで単票形式なら、メッセージボックスにひとつだけ出す。/エラーフォームに一覧を表示する。
・シートで表形式なら、シートのエラー欄or別のシートに一覧を出す。
<色>
・エラー箇所のコントロールやセルに色を塗る/塗らない。
<ログ>
・エラーログを出す/出さない。

そうこう考えると、アプリケーション全体でメッセージの出し方の方針や用語を揃えたくなる。

今まで使ってきて使い勝手がいいのが、エラーを蓄積する用意をし、処理開始時にエラー内容を初期化してからエラーを蓄積する方法だ。フォームや単票と表形式ではエラーの内容の蓄積内容が違うのだが、共通のエリアに(空き項目が出るが)溜めて差し支えないだろう。そうすれば取り出して表示する際、どの表示形式でも同じエリアからの取り出すようにすればややこしくない。
ただ、一つしかエラーを出さないにもかかわらず、すべてのエラーをチェックする、というのも時間の無駄かもしれない。特にデータベースアクセスを伴う場合は止めた方がいいだろう。

エラーに関してざっと書いた。共通モジュールとして雛形があり、それをカスタマイズして使う方法になるだろう。

ちょっと抽象的になったが・・。