こんにちは、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