本記事ではエラー値を識別できる『IsError関数』について解説していきます。
IsError関数の使い方
ここではIsError関数の簡単な解説をします。
IsError関数の書式
IsError関数の書式は下の通りです。
IsError関数は上のように「エラーかどうか確認したい値」を引数に指定します。
引数に指定した値がエラー値だった場合には”True”を返し、それ以外は”False”を返します。
※ちなみに『空白』の場合はFalseを返します。
簡単な参考コード
例えば、下のようにセルA1でエラー値が表示されています。
このセル状態をエラー判定か確認してみます。
上のセルA1がエラーかを確認するコードは下の通りです。
1 2 3 4 5 |
Sub Sample1() MsgBox IsError(Cells(1, 1)) End Sub |
IsError関数は「エラーになりそうだな」と思うセルや値を、上のコードのように引数に指定します。
※IsError関数の引数は1つのセル・値しか判定できない。構文エラーはでないが全てFalseが返される。
ちなみに上のコードを実行すると下のような結果が得られます。
【おまけ】エラー値の種類
おまけになりますが、エラー値には次のような種類があります。
エラー値 | 表示理由 |
---|---|
#N/A | 計算や処理の対象となるデータがないときに表示される。 |
#DIV/0! | 数式や関数を「0(もしくは空白)」で割り算しているときに表示される。 |
#NAME? | 用いられた関数の名前が間違っているときに表示される。 |
#NULL! | 複数の指定したセルに共通部分がないときに表示される。 |
#VALUE | 関数の引数の形式が間違っている時に表示される。 |
#NUM! | 数式または関数に無効な数値が含まれている場合に表示される。 |
#REF! | 数式上で無効なセルが参照されているときに表示される。 |
IsError関数の参考コード
ここではもう少しIsError関数の使い方を解説します。
IsError関数はboolean型なので、よくIf文と組み合わせることがあります。
例えば、下のような表があったとします。
「#N/A」という表示があり、この表示はみっともないので「”氏名を入力してください”に変換する」という処理を加えようと思います。
下がIsError関数を使って、エラー値を識別し、指定の文字列に置き換えるコードになります。
1 2 3 4 5 6 7 8 9 10 11 |
Sub Sample2() Dim i As Long For i = 3 To Range("B2").End(xlDown).Row If IsError(Cells(i, 2)) Then Cells(i, 2) = "氏名を入力してください" End If Next i End Sub |
上ではデータの始まり(セルB2)の行から終り(セルB7)の行まで繰り返します。
そして、6行目でIsError関数を使って、エラー値の識別を行っています。
上のコードを実行すると下のような結果が得られます。
このようにIsError関数を用いることでエラーがシート上(もしくはVBA上での計算結果など)にあるかを識別してくれます。
そして、結構出番がある関数なので覚えておいたほうが良い関数です。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク