VBATips

エラーを返すユーザー定義関数を作る【CVErr関数応用】【ExcelVBA】

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

注意点

関連記事

数値データかどうか判断する【IsNumeric関数】【ExcelVBA】
日付データかどうか判断する【IsDate関数】【ExcelVBA】
時刻データかどうか判断する【IsDate関数応用】【ExcelVBA】
配列かどうか調べる【IsArray関数】【ExcelVBA】
Nullデータかどうか判断する【IsNull関数】【ExcelVBA】
Emptyデータかどうか判断する【IsEmpty関数】【ExcelVBA】
セルの値がエラーかどうか判断する【IsError関数】【ExcelVBA】

 

コメント

タイトルとURLをコピーしました