回答編集履歴
2
余計なif削除
    
        answer	
    CHANGED
    
    | @@ -1,11 +1,10 @@ | |
| 1 1 | 
             
            MyErrorの最後で、Resume next でエラーが起こった次の行に復帰できます。
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 3 | 
             
            ```vba
         | 
| 5 4 | 
             
            Dim a As Integer
         | 
| 6 5 |  | 
| 7 6 | 
             
            Sub test()
         | 
| 8 | 
            -
            a = 0 | 
| 7 | 
            +
            a = 0
         | 
| 9 8 | 
             
            On Error GoTo MyError
         | 
| 10 9 |  | 
| 11 10 | 
             
            '処理1 'エラー発生
         | 
| @@ -14,17 +13,10 @@ | |
| 14 13 | 
             
            '処理2 'エラー発生
         | 
| 15 14 | 
             
            Err.Raise 200
         | 
| 16 15 |  | 
| 17 | 
            -
            '処理3 'エラー発生
         | 
| 18 | 
            -
            Err.Raise 100
         | 
| 19 | 
            -
             | 
| 20 | 
            -
            MsgBox a    ' 2
         | 
| 21 16 | 
             
            Exit Sub
         | 
| 22 17 |  | 
| 23 18 | 
             
            MyError:
         | 
| 24 | 
            -
                ' Err 100 のみカウントする
         | 
| 25 | 
            -
                If Err.Number = 100 Then
         | 
| 26 | 
            -
             | 
| 19 | 
            +
                Call Error
         | 
| 27 | 
            -
                End If
         | 
| 28 20 | 
             
                Resume Next
         | 
| 29 21 | 
             
            End Sub
         | 
| 30 22 |  | 
1
修正
    
        answer	
    CHANGED
    
    | @@ -2,9 +2,10 @@ | |
| 2 2 |  | 
| 3 3 |  | 
| 4 4 | 
             
            ```vba
         | 
| 5 | 
            -
            Sub test()
         | 
| 6 5 | 
             
            Dim a As Integer
         | 
| 7 6 |  | 
| 7 | 
            +
            Sub test()
         | 
| 8 | 
            +
            a = 0 'いるか不明
         | 
| 8 9 | 
             
            On Error GoTo MyError
         | 
| 9 10 |  | 
| 10 11 | 
             
            '処理1 'エラー発生
         | 
| @@ -22,14 +23,12 @@ | |
| 22 23 | 
             
            MyError:
         | 
| 23 24 | 
             
                ' Err 100 のみカウントする
         | 
| 24 25 | 
             
                If Err.Number = 100 Then
         | 
| 25 | 
            -
                     | 
| 26 | 
            +
                    Call Error
         | 
| 26 27 | 
             
                End If
         | 
| 27 28 | 
             
                Resume Next
         | 
| 28 29 | 
             
            End Sub
         | 
| 29 30 |  | 
| 30 | 
            -
            Private  | 
| 31 | 
            +
            Private Sub Error()
         | 
| 31 | 
            -
                'たぶんグローバルな a に対して、加算したいのだとは思うが・・・
         | 
| 32 | 
            -
                 | 
| 32 | 
            +
                a = a + 1 '呼び出された回数をカウント
         | 
| 33 | 
            -
            End  | 
| 33 | 
            +
            End Sub
         | 
| 34 | 
            -
             | 
| 35 34 | 
             
            ```
         | 
