回答編集履歴
2
余計なif削除
test
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
MyErrorの最後で、Resume next でエラーが起こった次の行に復帰できます。
|
2
|
-
|
3
|
-
|
4
2
|
|
5
3
|
|
6
4
|
|
@@ -12,7 +10,7 @@
|
|
12
10
|
|
13
11
|
Sub test()
|
14
12
|
|
15
|
-
a = 0
|
13
|
+
a = 0
|
16
14
|
|
17
15
|
On Error GoTo MyError
|
18
16
|
|
@@ -30,27 +28,13 @@
|
|
30
28
|
|
31
29
|
|
32
30
|
|
33
|
-
'処理3 'エラー発生
|
34
|
-
|
35
|
-
Err.Raise 100
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
MsgBox a ' 2
|
40
|
-
|
41
31
|
Exit Sub
|
42
32
|
|
43
33
|
|
44
34
|
|
45
35
|
MyError:
|
46
36
|
|
47
|
-
' Err 100 のみカウントする
|
48
|
-
|
49
|
-
If Err.Number = 100 Then
|
50
|
-
|
51
|
-
|
37
|
+
Call Error
|
52
|
-
|
53
|
-
End If
|
54
38
|
|
55
39
|
Resume Next
|
56
40
|
|
1
修正
test
CHANGED
@@ -6,11 +6,13 @@
|
|
6
6
|
|
7
7
|
```vba
|
8
8
|
|
9
|
-
Sub test()
|
10
|
-
|
11
9
|
Dim a As Integer
|
12
10
|
|
13
11
|
|
12
|
+
|
13
|
+
Sub test()
|
14
|
+
|
15
|
+
a = 0 'いるか不明
|
14
16
|
|
15
17
|
On Error GoTo MyError
|
16
18
|
|
@@ -46,7 +48,7 @@
|
|
46
48
|
|
47
49
|
If Err.Number = 100 Then
|
48
50
|
|
49
|
-
a
|
51
|
+
Call Error
|
50
52
|
|
51
53
|
End If
|
52
54
|
|
@@ -56,14 +58,10 @@
|
|
56
58
|
|
57
59
|
|
58
60
|
|
59
|
-
Private
|
61
|
+
Private Sub Error()
|
60
62
|
|
61
|
-
|
63
|
+
a = a + 1 '呼び出された回数をカウント
|
62
64
|
|
63
|
-
Error = a + 1 '呼び出された回数をカウント
|
64
|
-
|
65
|
-
End
|
65
|
+
End Sub
|
66
|
-
|
67
|
-
|
68
66
|
|
69
67
|
```
|