Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで#N/Aエラーを判定する-CVErr関数・WorksheetFunction.IsNAメソッド

VBAで#N/Aエラーを判定する-CVErr関数・WorksheetFunction.IsNAメソッド

動作検証バージョン: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

最終更新日時:2022-12-20 11:12

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAで#N/Aエラーを判定する-CVErr関数・WorksheetFunction.IsNAメソッド

「条件分岐」の記事一覧

検索


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

.