関数・メソッド

セルの値がエラー(#N/A)かどうか判断する【WorksheetFunction.IsNA関数】【ExcelVBA】

構文

WorksheetFunction.IsNA(Expression)As Boolean

Expression・・エラー(#N/A)かどうか判断するセル
戻り値 ・・・・・Boolean型 エラー(#N/A)ならTRUE、エラー(#N/A)以外ならFALSE。
Expressionに指定した文字列・数式がエラー値(#N/A)かどうか判別します。
(それ以外のエラーはFalseとなります)

IsNA関数のサンプルコード

Public Sub sample()
 
    '■#N/Aの場合はTrue
    '「#N/A」→VLOOKUP関数で検索値が範囲内にない場合等
     Debug.Print WorksheetFunction.IsNA(Range("A1"))             'True
                    
    '■それ以外のエラーはFalse
    '「#NAME?」→関数名や定義した名前の入力が間違っている場合等
     Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    '「#NULL!」→SUM関数でコロン (:)を使うところに、スペース( )がはいっている場合等
    Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    '「#DIV/0」→(例)A1セルに=10/0を入力した状態で上記、コードを実行する。
     Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    '「#NUM!」→LARGE 関数で引数に指定できる数値の範囲を超えたとき等
    Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    '「#REF!」→SUM(B2,C2,D2)関数で列 B、C、または D を削除した場合等
    Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    '「#SPILL!」→=B2:B5とセルに入力したとき、B2~B5に非空白のセルがあった場合等
    Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    'セルA1が「#VALUE!」→=B1+B2を実施する場合、B1 または、B2が数値以外の場合等
    Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    
    '■エラー以外もFalse
    Debug.Print WorksheetFunction.IsNA(Range("A1"))             'False
    
    
 End Sub

注意点

  • WorksheetFunction.での実装です。VBAでのみ処理実装する場合CVErr関数が該当します。

関連記事

コメント

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