本ページには広告が含まれています。

ExcelVBA IsError関数 エラー値かどうかを判定する

ExcelVBA IsError関数 エラー値かどうかを判定する

Excel VBAの「IsError 関数」について解説します。

スポンサーリンク

IsError 関数とは

Excel VBA の IsError 関数は、指定した値がエラーかどうかを判定し、Boolean値で結果を返します。エラー値であれば True、それ例外は False が返ります。

IsError 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。

IsError 関数(Visual Basic for Applications リファレンス)

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

IsError(expression)

引数

引数 説明
expression【必須】判定したい値 (式) を指定します

引数を変数で指定する場合のデータ型は Variant です。
なぜなら「エラー値」は Variant変数のみに代入可能だからです。

戻り値

戻り値説明
ブール値
(Boolean)
引数がエラー値の場合 True それ以外は False を返します

解説(使用例)

IsError 関数は、実行時エラーを直接判定することはできません。主にセルのエラー値やユーザー定義のエラーを判定するために使用されます。

以下、IsError 関数の使用例のサンプルコードです。

IsError関数サンプル1(基本的な例)

IsError の引数 Variant 変数にエラー値などいろいろなデータを代入して結果を確認しましょう。

'■IsError関数サンプル1 (基本的な例)
Sub IsError_Sampl01()
  Dim v As Variant
  
  v = CVErr(xlErrNA)    '#N/A エラー値を代入
  Debug.Print IsError(v)    'True
  
  v = CVErr(99)   '独自エラー 99
  Debug.Print IsError(v)    'True
  
  v = Range("A1").Value   'セルが #DIV/0! エラー
  Debug.Print IsError(v) & Range("A1").Text   'True
  
  v = Null
  Debug.Print IsError(v)    'False
  
  v = True
  Debug.Print IsError(v)    'False
  
  v = ""
  Debug.Print IsError(v)    'False

End Sub

コードを実行したイミディエイト画像がこちらです。

IsError_Sampl01 イミディエイト画像

2件目は、同じく CVErr 関数で独自エラー番号を引数に設定しているので True が返りました。

11行目(3件目の例)では、引数にセルの値(Value)を変数に代入して確認しています。セルがエラー値だったので True が返っています。

以降の例では、エラー値ではないのですべて False です。

IsError関数サンプル2 (セル範囲のエラー確認例)

指定したセル範囲内にあるセルの値(Value)を IsError 関数ですべて検査し、エラー値だった場合 MsgBox に表示します。検査完了後にエラーが何件あったかを表示します。

'■IsError関数サンプル2 (セル範囲のエラー確認例)
Sub IsError_Sampl02()
  Dim cell As Range
  Dim count As Long
  For Each cell In Range("A1:A10")
    If IsError(cell.Value) Then
      MsgBox cell.Address & " は " & cell.Text & " エラーです"
      count = count + 1
    End If
  Next cell
  MsgBox "エラー件数は " & count & " でした。"
End Sub

エラー値があった場合に表示される MsgBox の例です。

IsError_Sampl02 実行時に表示されたMsgBox画像(1)
IsError_Sampl02 実行時に表示されたMsgBox画像(2)

検査完了時に表示される MsgBox でエラー件数を表示します。

IsError_Sampl02 最後に表示されMsgBox画像

おわりに

Excel VBA IsError 関数は、引数に指定した値がエラー値かどうかを判定し、結果を Boolean値(エラー値の場合 True、それ以外は False)で返します。

IsError関数は、標準のエラー値だけでなく、ユーザー定義のエラーも判定することができます。エラー値を判定し、適切な処理を行うことで、プログラムの安定性を向上させることができます。

ただし、IsError関数では判定できない実行時エラーをハンドリングするには On Errorステートメントを使用する必要があります。詳しくは次の記事をご覧ください。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!