【ExcelVBA・マクロ】IsErrorの使い方|エラー値を判定して安全に処理する方法【コピペOK】

IsErrorの使い方 ExcelVBA

VBAで処理をしていると、次のようなことはありませんか?

  • セルにエラー(#N/A など)が入っている
  • 計算結果がエラーかどうか確認したい
  • エラーで処理が止まるのを防ぎたい

このような場合は、IsError関数を使うことで解決できます。
値がエラーかどうかを判定できるため、エラーに強いVBAコードを書くために必須の関数です。

この記事では、IsErrorの基本から実務で使える活用方法まで分かりやすく解説します。


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

この記事でできること

  • エラー値を判定できる
  • エラーを回避した安全な処理が書ける
  • 実務で使えるエラーチェック方法が分かる

基本:IsError関数の使い方

基本構文はこちらです。

IsError(値)

例:

MsgBox IsError(CVErr(xlErrNA))

→ True(エラー値)


戻り値の意味

結果意味
Trueエラー値
False正常な値

セルのエラーを判定する

最もよく使うパターンです。

Option Explicit

Sub CheckError()

    If IsError(Range("A1").Value) Then
        MsgBox "エラーがあります"
    Else
        MsgBox "正常な値です"
    End If

End Sub

エラーを回避して処理する(重要)

エラーを避ける安全な書き方です。

Dim val As Variant

val = Range("A1").Value

If IsError(val) Then
    MsgBox "処理をスキップします"
Else
    MsgBox val
End If

エラーの種類(参考)

Excelにはさまざまなエラーがあります。

  • #N/A
  • #DIV/0!
  • #VALUE!
  • #REF!
  • #NAME?

IsErrorはこれらすべてをまとめて判定できます。


CVErrと組み合わせる

VBA内でエラーを扱う場合はこちらです。

Dim val As Variant

val = CVErr(xlErrNA)

If IsError(val) Then
    MsgBox "エラーです"
End If

IsErrorとIsNumericの組み合わせ

より安全なチェック方法です。

Dim val As Variant

val = Range("A1").Value

If Not IsError(val) And IsNumeric(val) Then
    MsgBox val * 2
End If

エラーかつ数値チェックで安全に処理できます。


実務での活用例

  • VLOOKUP結果のエラーチェック
  • 計算結果の検証
  • CSVデータの検証
  • エラー回避処理

特に検索処理では必須です。


よくあるエラーと対処法

① エラーで処理が止まる

事前にIsErrorでチェックしてください。

② 正常値なのにTrueになる

Variant型で扱っているか確認してください。

③ コードは正しいのにエラーになる

コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


On Errorとの違い

方法特徴
IsError値のエラーを判定
On Error処理全体のエラー制御

用途に応じて使い分けることが重要です。


まとめ

  • IsErrorでエラー値を判定できる
  • エラー回避処理に必須
  • セルのエラーチェックでよく使う
  • 安全なVBAコードに欠かせない

IsErrorを使いこなせるようになると、エラーに強い安定したVBAコードが書けるようになります。
特に実務では必須レベルの関数なので、ぜひ活用してみてください。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

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