概要
CVErr
関数は、Excel VBAでユーザー定義のエラーを生成するための関数です。通常、VBAの標準エラーだけではカバーできないカスタムエラーを作成し、エラーハンドリングの際に活用することができます。この関数は、関数やプロシージャから特定のエラーを示すために用いられます。
構文
CVErr(エラー番号)
パラメータ
- エラー番号
エラーコードを指定します。標準のエラーコード(例えば、xlErrDiv0
やxlErrNA
)またはカスタムの数値を使うことができます。
戻り値
指定されたエラー番号に対応するVariant型のエラー値を返します。この戻り値は、エラー処理を行う際に非常に役立ちます。
説明
CVErr
関数は、関数やプロシージャ内で発生するカスタムエラーを示すために使われます。通常のエラーとは異なり、この関数で生成されたエラーは、意図的に返すことができるため、より柔軟なエラーハンドリングが可能となります。
-
エラーコードの指定
Excel VBAでは、標準的なエラーコード(例えば、
xlErrDiv0
= 2007、xlErrNA
= 2042など)を使用して、具体的なエラーの意味を表現することができます。また、自作のエラーコードも使用可能です。 -
エラー値の処理
CVErr
関数で生成されたエラーは、IsError
関数を用いてエラーチェックを行うことができます。これにより、特定のエラーコードに応じた処理を分岐させることが可能です。
使用例
基本的な使用例 - ユーザー定義エラーを返す
Function DivideNumbers(a As Double, b As Double) As Variant
If b = 0 Then
' ゼロでの除算を防ぐため、カスタムエラーを返す
DivideNumbers = CVErr(xlErrDiv0)
Else
DivideNumbers = a / b
End If
End Function
エラーを確認して処理を分岐させる
Sub CheckDivideError()
Dim result As Variant
result = DivideNumbers(10, 0)
If IsError(result) Then
MsgBox "エラーが発生しました: " & CStr(result) ' 結果: エラーコードが表示される
Else
MsgBox "計算結果: " & result
End If
End Sub
自作のエラーコードを使用する
Function CustomErrorTest() As Variant
' 独自のエラーコードを返す(例: 9999)
CustomErrorTest = CVErr(9999)
End Function
Sub TestCustomError()
Dim result As Variant
result = CustomErrorTest()
If IsError(result) Then
MsgBox "カスタムエラーが発生しました。エラーコード: " & CStr(result) ' 結果: カスタムエラーコード9999が表示される
End If
End Sub
備考
-
エラーコードの範囲
Excelにはいくつかの標準エラーコードが存在しますが、カスタムエラーを生成する場合は、既存のエラーコードと重複しないように注意が必要です。 -
エラーハンドリングの強化
CVErr
関数を使用することで、標準のVBAエラーハンドリングを補完し、より細かいエラーメッセージやアクションを指定することができます。これにより、ユーザーにとってわかりやすいエラーメッセージの提供が可能になります。 -
デバッグと保守性の向上
ユーザー定義エラーを使用することで、特定の条件下でのエラーの発生原因を迅速に特定でき、デバッグやプログラムの保守性が向上します。