Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
Errに関する件
投稿日時: 21/04/18 19:18:46
投稿者: ぜんだまん
メールを送信

ぜんだまんと言います。
下記のプロシージャでコメント【1】は「エラーがあってもそのまま止まらず実行する」でわかるのですが、【2】は「Errオブジェクトのプロパティ設定をすべて解除」ということですが、
意味がわかりません。
また【3】は「もし、エラーが出てなければ」ということでいいのでしょうか?
エラーが出ていても【1】でエラーが出ていても進む記述をしているのでそのまま進むのでしょうか?
【1】を入れているのに【2】【3】を入れている意図を解説お願いいたしします。
【ソース】
https://excel-ubara.com/excel-answer/EXCELVBA616A.html
 

Sub 練習問題16_2()
  Dim i As Long
  Dim ix As Long
  Dim lngTotal As Long
  Dim ws1 As Worksheet
  Dim ws2 As Worksheet
  Set ws1 = Worksheets("練習16")
  Set ws2 = Worksheets("練習16_マスタ")
  lngTotal = 0
  On Error Resume Next'【1】
  With ws1
    For i = 2 To 11
      Err.Clear'【2】
      ix = WorksheetFunction.CountIf(ws2.Columns(1), .Cells(i, 2))
      If Err.Number = 0 Then'【3】
        ix = WorksheetFunction.Match(.Cells(i, 2), ws2.Columns(1), False)
        .Cells(i, 3) = ws2.Cells(ix, 2)
        .Cells(i, 4) = ws2.Cells(ix, 3)
        .Cells(i, 6) = .Cells(i, 4) * .Cells(i, 5)
        lngTotal = lngTotal + .Cells(i, 6)
      End If
    Next
    .Cells(12, 6) = lngTotal
  End With
End Sub

回答
投稿日時: 21/04/18 19:56:06
投稿者: WinArrow
投稿者のウェブサイトに移動

作成者に訊いてみましょう。

回答
投稿日時: 21/04/18 20:30:58
投稿者: simple

繰り返しがあるので、【2】は、それ以前の処理でErrオブジェクトにエラー情報が入っていると
正常でもエラーと誤判定してしまうのを避けるために、初期化しています。
 
【3】は、ON Error Resume Nextで不測の事態が起きないよう、
不要な処理を行わないよう、保守的な(安全を見た)処理をしているのだと思います。
このあたりは、作成した人でない他人に意見を聞いても詮無いと思います。
 
そのサイトのお問い合わせのページには、
> ※Excelの質問について
> 掲載内容に対する質問・指摘には概ねお返事いたします。

とあります。
そちらで質問されたほうが、
サイト管理者にもあなたにも有益じゃないですか?
 
前回のMatch関数の引数についても確認したらどうですか?修正されるでしょう。

投稿日時: 21/04/19 20:44:15
投稿者: ぜんだまん
メールを送信

simple さんの引用:
繰り返しがあるので、【2】は、それ以前の処理でErrオブジェクトにエラー情報が入っていると
正常でもエラーと誤判定してしまうのを避けるために、初期化しています。
 
【3】は、ON Error Resume Nextで不測の事態が起きないよう、
不要な処理を行わないよう、保守的な(安全を見た)処理をしているのだと思います。
このあたりは、作成した人でない他人に意見を聞いても詮無いと思います。
 
そのサイトのお問い合わせのページには、
> ※Excelの質問について
> 掲載内容に対する質問・指摘には概ねお返事いたします。

とあります。
そちらで質問されたほうが、
サイト管理者にもあなたにも有益じゃないですか?
 
前回のMatch関数の引数についても確認したらどうですか?修正されるでしょう。

 
simpleさん、回答ありがとうございます。
このサイトの主は以前メールしたのですが、返信してくれないんで、こちらで質問しています。