■ 例外処理のサンプル
予期しないエラーが発生した際に原因を突き止めやすくするため、例外処理を作成しておくことが大切です
VBA では例外処理の記述が統一されにくいため、サンプルを作成してみました
ポイント毎にステップ番号を指定しますが、プログラムを修正することを考慮して10間隔くらいで設定しておきます
(文字列にしているので単純に連番にしておいて、追加するときは枝番等を利用することも可能です)

On Error の飛び先では、エラー処理を呼び出すのみとなります
先頭の引数は関数名とし、メイン処理のみ最後に True を追加で指定します
'' メイン処理
Public Sub Main_Proc()

    Dim st_step As String               '' ステップ番号

On Error GoTo Err_Routine

st_step = "0010"

st_step = "0020"                        '' ポイント毎にステップ番号を設定
    Call Sub_Proc01

    Exit Sub

Err_Routine:
    Call Error_Proc("Main_Proc", st_step, True)

End Sub

'' サブ処理01
Private Sub Sub_Proc01()

    Dim st_step As String               '' ステップ番号

On Error GoTo Err_Routine

st_step = "0010"

st_step = "0020"

st_step = "0030"
    Call Sub_Proc02

    Exit Sub

Err_Routine:
    Call Error_Proc("Sub_Proc01", st_step)

End Sub

'' サブ処理02
Private Sub Sub_Proc02()

    Dim st_step As String               '' ステップ番号

    On Error GoTo Err_Routine

    st_step = "0010"
    '' 意図的にエラーを発生させる
    MsgBox Format$(5 / 0)

    Exit Sub

Err_Routine:
    Call Error_Proc("Sub_Proc02", st_step)

End Sub

'*------------------------------------------------------------------------------
'*  エラー処理
'*------------------------------------------------------------------------------
Private Sub ProcError(ByVal st_proc As String, ByVal st_step As String, _
        Optional ByVal bln_main As Boolean = False)

    '' エラー発生の呼び出し履歴を作成する
    If (Left$(Err.Source, 3) <> " → ") Then
        Err.Source = " → " & st_proc_name & "." & st_step
    Else
        Err.Source = " → " & st_proc_name & "." & st_step & Err.Source
    End If
    If (bln_main) Then
        '' システムエラーを表示する
        MsgBox "予期しないエラーが発生しました。" & vbCrLf & vbCrLf & _
                Err.Description & " (" & Err.Number & ")" & vbCrLf & vbCrLf & _
                Mid$(Err.Source, 3), vbCritical, "業務タイトル"
    Else
        '' 呼び出し元の関数でエラーを発生させる
        Call Err.Raise(Err.Number, Err.Source, Err.Description)
    End If

End Sub
Sub_Proc02 の中でエラーが発生すると(意図的にエラーを発生させています)、メイン処理まで遡ってエラーメッセージが表示されます
エラーが発生したモジュールまでの履歴が表示されるので、直接の原因がエラー発生モジュールと異なるような場合でも便利です