無視しても構わないエラーのために「On Error Resume Next」をあちらこちらに挿入しておりました。そうしますと、無視してはいけないエラーもスルーしてしまうことがありました。私はプログラマーではなく、正直言ってエラー処理は苦手です。見つけたエラーは都度対処しておりますが、「On Error Goto」にしてエラーのログを残すようにしました。
例:「On Error Goto 終了」としてエラーの際には終了:ラベルに飛び、共通サブルーチン「エラーログ」を呼び出します。各種エラー情報を記録してます。文法エラーのようなものはここに記録されるまでもなくポップアップされます。
Private Sub cmd_インポート_Click()
On Error GoTo 終了
ImportFromExcel ("品目")
Me.SF_品目マスタ.Requery
Exit Sub
終了:
Call エラーログ("F_品目マスタ", "cmd_インポート_Click")
End Sub
Public Sub エラーログ(ByVal m As String, ByVal p As String)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("T_エラーログ")
With rst
.AddNew
.Fields("日時") = Now
.Fields("エラー番号") = Err.Number
.Fields("エラーメッセージ") = Err.Description
.Fields("エラーモジュール") = m
.Fields("エラープロシージャ") = p
.Update
.Close
End With
Set rst = Nothing
End Sub