質問するログイン新規登録

回答編集履歴

2

余計なif削除

2020/09/04 14:57

投稿

momon-ga
momon-ga

スコア4828

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
- Call Error
19
+ Call Error
27
- End If
28
20
  Resume Next
29
21
  End Sub
30
22
 

1

修正

2020/09/04 14:57

投稿

momon-ga
momon-ga

スコア4828

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
- a = Error(a)
26
+ Call Error
26
27
  End If
27
28
  Resume Next
28
29
  End Sub
29
30
 
30
- Private Function Error(a)
31
+ Private Sub Error()
31
- 'たぶんグローバルな a に対して、加算したいのだとは思うが・・・
32
- Error = a + 1 '呼び出された回数をカウント
32
+ a = a + 1 '呼び出された回数をカウント
33
- End Function
33
+ End Sub
34
-
35
34
  ```