CVErr 関数CVErr function

ユーザーによって指定されたエラー番号を含むサブタイプ ErrorVariant を返します。Returns a Variant of subtype Error containing an error number specified by the user.



必須の errornumber 引数は、任意の有効なエラー番号です。The required errornumber argument is any valid error number.


CVErr 関数は、ユーザーが作成するプロシージャでユーザー定義のエラーを作成するために使用されます。Use the CVErr function to create user-defined errors in user-created procedures. たとえば、複数の引数を受け取って普通に文字列を返す関数を作成する場合は、関数で入力引数を評価し、受け付けられる範囲内の値であることを確認できます。For example, if you create a function that accepts several arguments and normally returns a string, you can have your function evaluate the input arguments to ensure they are within acceptable range. そうでない場合、関数は期待する結果を返しません。If they are not, it is likely your function will not return what you expect. このような場合、CVErr を使用することで、実行する処理の内容を通知するエラー番号を返すことができます。In this event, CVErr allows you to return an error number that tells you what action to take.

Error の暗黙的な変換はできないことに注意してください。Note that implicit conversion of an Error is not allowed. たとえば、CVErr の戻り値を、Variant ではない変数に直接割り当てることはできません。For example, you can't directly assign the return value of CVErr to a variable that is not a Variant. ただし、CVErr によって返される値の明示的な変換を実行し (CIntCDbl などを使用)、それを適切なデータ型の変数に割り当てることはできます。However, you can perform an explicit conversion (by using CInt, CDbl, and so on) of the value returned by CVErr and assign that to a variable of the appropriate data type.


次の例では、CVErr 関数を使用して、VarTypevbError (10) である Variant を返します。This example uses the CVErr function to return a Variant whose VarType is vbError (10). ユーザー定義関数 CalculateDouble は、渡された引数が数値でない場合にエラーを返します。The user-defined function CalculateDouble returns an error if the argument passed to it isn't a number. CVErr を使用して、ユーザー定義プロシージャからユーザー定義エラーを返すことも、実行時エラーの処理を遅らせることもできます。You can use CVErr to return user-defined errors from user-defined procedures or to defer handling of a run-time error. 値がエラーを表しているかどうかを調べるには、IsError 関数を使用します。Use the IsError function to test if the value represents an error.

' 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.
        CalculateDouble = CVErr(2001)    ' Return a user-defined error 
    End If    ' number.
End Function

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.