Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで#N/Aエラーを判定する-CVErr関数

VBAで#N/Aエラーを判定する-CVErr関数

動作検証バージョン:Windows版Excel(バージョン1903 ビルド11425.20202)

「VBA #N/A なら」
「VBA N/A の場合」
「エクセル VBA N/Aのしょり」
といった検索キーワードでのアクセスに気が付きました。

Excel VBAで#N/Aエラーが発生しているときの判定を、どう行えばいいのかを探していた方による検索です。

詳細は不明ですが、
  If ActiveCell.Value = "#N/A" Then
といった形で判定を行おうとしていらしたのではないかと想像しています。

[スポンサードリンク]

CVErr関数を使って#N/Aエラーを判定するサンプルマクロ

以下のSubプロシージャが参考になるでしょう。


Sub NAエラーを判定する_CVErr()
 If IsError(ActiveCell.Value) Then
  MsgBox "何らかのエラーが発生しています。"

  If ActiveCell.Value = CVErr(xlErrNA) Then
   MsgBox "#N/Aエラーです。"
  Else
   MsgBox "#N/Aエラーとは別のエラーです。"
  End If

 Else
  MsgBox "エラーは発生していません。"
 End If
End Sub

アクティブセルに#N/Aエラーが発生しているときに、
「何らかのエラーが発生しています。"」
「#N/Aエラーです。」
と2回メッセージボックスが表示されます。

セル内にエラーが発生しているかどうかだけならば、VBAのIsError関数で判定できます。

#N/Aエラーかどうかまで判定するには、上記コードのようにVBAのCVErr関数の引数に、XlCVError列挙に定義されている定数xlErrNAを指定して返される値と比較する必要があります。

WorksheetFunction.IsNAで#N/Aエラーを判定するサンプルマクロ

VBAで、セル内で発生するエラーの判定を細かく行おうとすると面倒だということを知った上で、単純に#N/Aエラーを判定するだけならば、ISNA関数をVBAから利用するのが簡単です。


Sub NAエラーを判定する_WorksheetFunction()
 If WorksheetFunction.IsNA(ActiveCell.Value) Then
  MsgBox "#N/Aエラーです。"
 Else
  MsgBox "#N/Aエラーは発生していません。"
 End If
End Sub

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで#N/Aエラーを判定する-CVErr関数

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで#N/Aエラーを判定する-CVErr関数

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.