Excel VBAでデータ型が一致していなかったり、指定しているシートがなかったりするとエラーが表示されます。
例えば、 VBAでA列の日付の1ヶ月後の日付をB列に入力するという処理をさせるとき、A列に日付型ではないデータがある場合、エラーが表示され、そこでストップしてしまいます。
エラーが出てもスルーして処理を続行させたり、表示させるメッセージを自分で指定する方法を記録します。
< スポンサーリンク >
エラーが出てもスルーし処理を続行させる
「On Error Resume Next」を処理のコードの前に入力します。
エラーが発生してもスルーして処理が続行されます。
エラーが発生したら独自のメッセージを表示し処理を止める
「On Error GoTo ***」(***は任意の文字)を処理のコードの前に入力し、「End Sub」の前に「***:」を入力し、その後に独自のメッセージを出すように書きます。
「On Error GoTo ***」を書くことにより、エラーが発生したら、「***」まで処理が飛びます。
※注意※ 「***:」の前に「Exit Sub」を書き込んでおきます。そうしないと、エラーがなくてもメッセージが表示されます。(「End Sub」まで実行されます)
このVBAを実行すると、エラーメッセージが表示され処理が止まります。
処理を止めずにエラーが発生した時点でメッセージを表示する
「On Error Resume Next」を処理のコードの前に入力し、エラーが発生する場所で「If Err.Number <> 0 Then」でメッセージを表示します。
実行すると、エラーが発生した場所でメッセージが表示され、その後も処理が続きます。
「On Error Resume Next」と「Err.Clear」は忘れないように書き込みます。
こんな記事も書いています