ユーザーによって指定されたエラー番号を含むサブタイプ Error のバリアント型 (Variant) の値を返します。
構文
CVErr(errornumber)
必要な errornumber引数は、任意の有効なエラー番号です。
解説
ユーザーが作成したプロシージャでユーザー定義のエラーを作成するには、CVErr 関数を使用します。 たとえば、複数の引数を使用し、通常は文字列を返す関数を作成する場合、関数で入力引数を評価して、値が許容範囲内になるようにすることができます。 そうしないと、関数が期待どおりの値を返さない可能性が高くなります。 この場合、CVErr を使用すると、エラー番号が返されるので、対処方法を判断できます。
Error の暗黙的な変換は許可されません。 たとえば、 CVErr の戻り値を Variant ではない変数に直接割り当てることはできません。 ただし、CVErr によって返される値の明示的な変換 (CInt、CDbl などを使用) を実行し、それを適切なデータ型の変数に割り当てることができます。
使用例
注
次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。
この例では、CVErr 関数を使用して VarType が vbError (10) の Variant を返します。 渡された引数が数値でない場合、ユーザー定義関数 CalculateDouble はエラーを返します。
CVErr を使用して、ユーザー定義プロシージャからユーザー定義エラーを返すか、ランタイム エラーの処理を保留することができます。
IsError 関数を使用して、値がエラーを示すかどうかをテストします。
' Call CalculateDouble with an error-producing argument.
Sub Test()
Debug.Print CalculateDouble("345.45robert")
End Sub
' Define CalculateDouble Function procedure.
Function CalculateDouble(Number)
If IsNumeric(Number) Then
CalculateDouble = Number * 2 ' Return result.
Else
CalculateDouble = CVErr(2001) ' Return a user-defined error
End If ' number.
End Function