VB6も同じなんですがこのネタってあまり無いようです。
VB6っていうともう時代遅れのように思うのですが
Office VBAはまだまだ健在のように感じます。
特にAccessでは相変わらずVBAのみだったと思います。
そこでVBAを使ってクラスモジュールを多用するようなコーディングを
してみたいと思いますが...
その前にVB6/VBAのエラー処理って一般的にはどうしているのでしょうか??
僕はもともとVC系統出身なので
初めてVB6/VBAを触ったときにエラー処理をどう実装していいのか判らずに
困り果てた経験があります。
実際会社を移って初めて他人がプロダクトとして書いたコードを見たのですが
愕然としました。
なぜならエラー処理がほとんど未実装なんです。
そして心配だったので実装しようとしたら
「動いているものは触らないように」っとのこと...
今は部署が移ったので良かったと思っています。
僕なりに考えたエラー処理を紹介します。
一般的にイベントハンドラはSubプロシージャだと思います。
でっ...こんな感じです。
(インデントを全角2文字にしているのでコピーするときは注意してください)
Private Sub Sample01
On Error Goto ErrorHandler
'いろいろ書く
ExitHandler:
On Error Resume Next
'終了処理を書く
Exit Sub
ErrorHandler:
Debug Print "Sample01" & Err.Number & Err.Description
On Error Resume Next
'エラー処理を書く
Goto ExitHandler
End Sub
なぜこんなことを考えたのかというと
・オブジェクト変数をNewしたときに
終了処理のところに解放処理を記述することで
記述忘れを回避しやすくなるため。
・Subプロシージャ内でエラーが発生した場合
確実にイミディエイトウィンドウに出力されるようにするため。
・エラーが発生した場合にロールバックのような処理を
確実に記述するため。
そんなことを考えました。
特に1点目はクラスモジュールを多用するプログラミングでは
重要なのではないかと思います。