CVErr関数はセルのエラーだけ判断はもったいない
CVErr関数はワークシートのセルに#N/Aや#REFなど計算式にエラーが発生していないかチェックしますが、
エラーを返すユーザー定義関数としても使用可能です。
CVErrを使用したエラー判断のサンプルコード
'■CVErr関数を使用したユーザー定義関数のサンプル Public Sub sample() Dim val As Variant val = check_CVErr(10) Debug.Print val '20(10*2が実行された) val = check_CVErr("abc") Debug.Print val 'エラー 60001(abcと数値以外のデータが引数だったためエラーコードを出す) End Sub '■正常な値が引数であれば、2倍の数値を返す、エラーであれば、エラー番号を返却 Function check_CVErr(temp As Variant) As Variant If IsNumeric(temp) Then check_CVErr = temp * 2 Else check_CVErr = CVErr(60001) End If End Function
注意点
- 返却値のデータ型はVariant型で設定する必要があります。
詳細は下記記事を参考にしてください。
セルのエラー値の種類を判別する【CVErr関数】【ExcelVBA】 - XlCVError列挙に定義されている定数がある為、使用するのは60000番以降が望ましいと考えます。
使用可能な数字は0~65535の間です。
関連記事
数値データかどうか判断する【IsNumeric関数】【ExcelVBA】
日付データかどうか判断する【IsDate関数】【ExcelVBA】
時刻データかどうか判断する【IsDate関数応用】【ExcelVBA】
配列かどうか調べる【IsArray関数】【ExcelVBA】
Nullデータかどうか判断する【IsNull関数】【ExcelVBA】
Emptyデータかどうか判断する【IsEmpty関数】【ExcelVBA】
セルの値がエラーかどうか判断する【IsError関数】【ExcelVBA】
コメント