関数・メソッド

セルの値がエラーかどうか判断する【WorksheetFunction.IsErr関数】【ExcelVBA】

構文

WorksheetFunction.IsErr(Expression) 

Expression・・Errorかどうか評価する文字列・数式
戻り値 ・・・・・Boolean型 Error値が#N/A以外ならTrue/Errorデータ以外、或いは#N/AならばFalse
Expressionに指定した文字列・数式がError値かどうか判別します。WorksheetsFunctionです。
(Errorデータ以外(#N/Aも含む)はFalseとなります)

IsErr関数のサンプルコード

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

   '■セルA1が「#SPILL!」の場合
  '(例)C2にて=B2:B5とセルに入力したとき、C2~C5に非空白のセルがあった場合等
     Debug.Print WorksheetsFunction.IsErr(Range("C2"))             'True

  '■セルA1が「#VALUE!」の場合   					
  '(例)=B1+B2を実施する場合、B1 または、B2が数値以外の場合等
    Debug.Print WorksheetsFunction.IsErr(Range("A1"))             'True
    
 End sub

注意点

  • #N/Aはエラーとして、扱いません。
  • エラーの種類を取得したい場合は、CVErr関数で取得する必要があります。
  • WorksheetFunction.での実装です。VBAでのみ処理実装する場合isError関数が該当します。

関連記事

コメント

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