はいどーも、まるです。
今日は滅多にしない、VBAの話題。
便利なMatch関数ですが、
見つからない時は返り値がEmptyになっており、エラーを吐いて止まってしまいます。
なのでその条件分岐を追加してあげることでエラー検出を行います。
具体的には、
On Error GoTo Errhappen
をエラーが起きる処理の前に入れてあげて(On Error文についてはこちらを参照)、
Errhappen:
Select Case Err.Number
Case 1004
MsgBox "『" & KEY & "』はが見つかりませんでした。"
Case Else
MsgBox "予期せぬエラーが発生しました。"
End Select
Err.Clear
End Sub
とすることでエラーをキャッチできるようになります。
While文などのループこの処理を噛ませることで、エラーが起きた場合も中断されずに、
続けることが出来ます。
上述の例ではエラーメッセージが出るようにしていますが、勿論Skipしたりやり直したりlog.txtに出力させるなどしても良いでしょう。