回答編集履歴

2

余計なif削除

2020/09/04 14:57

投稿

momon-ga
momon-ga

スコア4826

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
- Call Error
37
+ Call Error
52
-
53
- End If
54
38
 
55
39
  Resume Next
56
40
 

1

修正

2020/09/04 14:57

投稿

momon-ga
momon-ga

スコア4826

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 = Error(a)
51
+ Call Error
50
52
 
51
53
  End If
52
54
 
@@ -56,14 +58,10 @@
56
58
 
57
59
 
58
60
 
59
- Private Function Error(a)
61
+ Private Sub Error()
60
62
 
61
- 'たぶんグローバルな a に対して、加算しいのだとは思うが・・・
63
+ a = a + 1 '呼び出され回数をカウント
62
64
 
63
- Error = a + 1 '呼び出された回数をカウント
64
-
65
- End Function
65
+ End Sub
66
-
67
-
68
66
 
69
67
  ```