PR

【VBA】セルのエラー値を判定する

これで楽に!?VBA活用
記事内に広告が含まれています。

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

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