VBA初心者向けに、Excel VBAでエラー処理を行い、特定のエラーが発生した場合に処理をスキップして次に進む方法を紹介します。この方法を使うと、エラーが発生してもプログラムの実行を続けられ、後続の処理に影響を与えません。
1. エラー処理の基本
VBAでエラーを処理する際には、主に「On Error」ステートメントを使用します。これにより、エラーが発生したときに特定の処理を実行したり、エラーメッセージを表示したり、プログラムの実行をスキップすることができます。
2. エラーが発生した場合に処理を飛ばす方法
質問のコードでは、指定したセル範囲に値が見つからない場合にエラーが発生します。この場合、エラーを無視して次の処理に進むために、エラー処理を追加します。
Sub メルカリ更新csv転送() Range("a13").Activate For i = 1 To 520 Dim code As String, name As String, rkakaku As Integer, setumei As String, jan As String, g1 As String, g2 As String, g3 As String, g4 As String, g5 As String, g6 As String, g7 As String, g8 As String, g9 As String code = ActiveCell.Value name = ActiveCell.Offset(0, 4).Value rkakaku = ActiveCell.Offset(0, 14).Value setumei = ActiveCell.Offset(0, 16).Value jan = ActiveCell.Offset(0, 25).Value g1 = ActiveCell.Offset(0, 26).Value g2 = ActiveCell.Offset(0, 27).Value g3 = ActiveCell.Offset(0, 28).Value g4 = ActiveCell.Offset(0, 29).Value g5 = ActiveCell.Offset(0, 30).Value g6 = ActiveCell.Offset(0, 31).Value g7 = ActiveCell.Offset(0, 32).Value g8 = ActiveCell.Offset(0, 33).Value g9 = ActiveCell.Offset(0, 34).Value Sheets("メルカリ更新csv").Activate Range("ao10").Activate ActiveCell.Value = code ' エラー発生時の処理 On Error Resume Next Range("bs13:bs9000").Find(What:=Range("ao10").Value, LookAt:=xlWhole).Activate If Err.Number <> 0 Then Err.Clear ' エラー発生時の処理 End If ActiveCell.Offset(0, 1).Value = jan ActiveCell.Offset(0, 75).Value = rkakaku ActiveCell.Offset(0, -7).Value = setumei ActiveCell.Offset(0, -8).Value = name ActiveCell.Offset(0, -68).Value = g1 ActiveCell.Offset(0, -65).Value = g2 ActiveCell.Offset(0, -62).Value = g3 ActiveCell.Offset(0, -59).Value = g4 Sheets("CSV作成").Activate ActiveCell.Offset(1, 0).Activate Next i Sheets("メルカリ更新csv").ActivateEnd Sub
3. コードの解説
このコードでは、次のポイントを押さえています。
- On Error Resume Next – エラー発生時に次の行に進むようにします。これにより、エラーが発生してもプログラムは終了せず、処理が続行されます。
- Err.Number – エラー番号をチェックします。エラーが発生した場合、Err.Numberは0以外の値になります。
- Err.Clear – エラーをクリアします。エラー処理後にエラー状態をリセットします。
4. エラー処理を行うメリット
VBAでエラー処理を追加することで、プログラムの安定性が向上します。例えば、データが見つからない場合や不正な入力があった場合でも、プログラムが強制終了することなく処理を続けることができます。
5. まとめ
エラー処理を使って、VBAプログラムの安定性を向上させる方法について説明しました。エラーが発生した場合に適切に処理を行い、プログラムが終了せずに次の処理に進むようにすることで、効率的な運用が可能になります。


コメント