こんにちは、Ryoです。
集計処理や数式での結果をセル上に表示した際に0除算などの不適切な処理やセル指定間違い、参照エラーなどによってエラー値(#DIV/0!,#VALUE!,#REF!等)が表示されることがあります。これはIsError関数を利用することで正常かエラーかを判定することが可能なので、今回はこの内容について書いていきます。
1.サンプル概要
下の画像の表から平均値を求める欄に数式を入力していますが、0で除算する形で入力しているので「#DIV/0!」エラーとなっています。

このセル(D9)にIsError関数を利用して判定し、メッセージボックスで結果を表示します。

数式の誤りを訂正して正常な演算結果となっていれば、メッセージも正常判定の旨を表示します。

以上がサンプル概要になります。
2.サンプルコード
Sub Sample1()
'***セル値のエラー判定を行う***
'指定セル(D9)の値がエラー値となっているかを判定
If IsError(Cells(9, 4).Value) Then
'エラー値であればメッセージにてエラー表示
MsgBox "対象セルがエラー値となっています", vbCritical
Else
'エラー値でなければメッセージで正常表示
MsgBox "対象のセル値は正常です", vbInformation
End If
'***判定するエラー値は以下***
' #NULL!:セルの指定方法間違い
' #DIV/0!:0除算
' #VALUE!:不適切なデータが入力
' #REF!:セルの参照エラー
' #NAME?:関数名やセル範囲名などの名前間違い
' #NUM!:数値が過大/過小
' #N/A:値が無い
End Sub
指定した値がエラー値かどうかを判定するにはIsError関数を利用します。
構文:IsError(expression)
IsError関数は引数に指定した値がエラー値となっているかどうかを判定するもので、エラー値となっていればTrue、そうでなければFalseを返します。
サンプルではセルD9位置を指定し、その値をIsError関数を用いて判定していますので、0除算し#DIV/0!となっていればTrue→エラー表示メッセージとなり正常な演算結果であればFalse→正常のメッセージ表示の処理を行っています。
サンプルコード内にも記述していますが、エラー値の種類として他には「#NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A」があります。
3.まとめ
VBAや数式などで処理した結果が予期せずエラー表示となっていることも稀にありますので、このようなIsError関数で判定させて確認しておくことも必要かと思います。
扱い自体は特に難しいこともありませんので、利用機会があればぜひご活用をご検討ください。
以上、セルのエラー値を判定する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo

