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コードが書けるようになります。
特に実務では必須レベルの関数なので、ぜひ活用してみてください。


コメント