VBAのCVErr関数について解説しています。
CVErr関数は、VBA関数の中で配列・エラー関数に分類される関数です。
CVErr関数は、ユーザーが指定した数値 (エラー番号) を、バリアント型 (Variant) の内部処理形式であるエラー値に変換した値を返す変換関数です。
構文 | CVErr(errornumber) | |
---|---|---|
引数 | 省略 | 説明 |
errornumber | × | 引数 errornumber には、任意の数値 (エラー番号) を指定します。 |
CVErr 関数を使用して、作成したプロシージャ内でユーザー定義のエラーを作成できます。たとえば、複数の引数を受け取り、1 つの文字列を返す関数を作成したときに、入力された引数の値が許容範囲内にあるかどうかを評価することができます。引数が許容範囲内にない場合、作成した関数は予期する値を返しません。このような場合、CVErr 関数を使用することにより、どのような動作が行われたのかを知らせるエラー番号を返すことができます。
エラー番号のデータ型を暗黙的に変換することはできません。たとえば、CVErr 関数の戻り値をバリアント型以外の変数に直接代入することはできません。ただし、CVErr 関数の戻り値を明示的に変換 (CInt 関数、CDbl 関数などを使用して変換) することにより、適切なデータ型の変数に代入することができます。
次の例は、CVErr 関数を使って、バリアント型 (Variant) のエラー値 (VarType 10) を返します。ユーザー定義の Function プロシージャ CalculateDouble は、数値以外の引数を渡されるとエラー値を返します。CVErr 関数は、ユーザー定義のプロシージャからユーザー定義のエラー番号を返すため、あるいは、実行時エラーの処理を延期するために使います。値がエラー値であるかを調べるときは、IsError 関数を使用してください。
' エラーが発生する値 (ここでは、文字列) を引数として指定し、Function プロシージャ CalculateDouble を呼び出します。
Sub Test()
Debug.Print CalculateDouble("345.45robert")
End Sub
' Function プロシージャ CalculateDouble を定義します。
Function CalculateDouble(Number)
If IsNumeric(Number) Then ' 受け取った値が数値であれば、
CalculateDouble = Number * 2 ' 結果を返します。
Else ' 数値以外のときは、
CalculateDouble = CVErr(2001) ' ユーザー定義のエラー値を返します。
End If
End Function
※ドラッグ(スワイプ)すると全体を確認できます。
関数名 | 内容 |
---|---|
Array | 配列が格納されたバリアント型の値を返します。 |
CVErr | 指定したエラー番号をバリアント型の値に変換します。 |
Error | 指定したエラー番号に対応するエラーメッセージを返します。 |
IsArray | 変数が配列かどうかを調べた結果を返します。 |
IsError | 式がエラー値かどうか調べた結果を返します。 |
LBound | 指定できる配列のインデックス番号の最小値を返します。 |
UBound | 指定できる配列のインデックス番号の最大値を返します。 |
↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。