「VBA #N/A なら」
「VBA N/A の場合」
「エクセル VBA N/Aのしょり」
といった検索キーワードでのアクセスに気が付きました。
Excel VBAで#N/Aエラーが発生しているときの判定を、どう行えばいいのかを探していた方による検索です。
詳細は不明ですが、
If ActiveCell.Value = "#N/A" Then
といった形で判定を行おうとしていらしたのではないかと想像しています。
CVErr関数を使って#N/Aエラーを判定するサンプルマクロ
以下のSubプロシージャが参考になるでしょう。
If IsError(ActiveCell.Value) Then
MsgBox "何らかのエラーが発生しています。"
If ActiveCell.Value = CVErr(xlErrNA) Then
MsgBox "#N/Aエラーです。"
Else
MsgBox "#N/Aエラーとは別のエラーです。"
End If
Else
MsgBox "エラーは発生していません。"
End Sub
アクティブセルに#N/Aエラーが発生しているときに、
「何らかのエラーが発生しています。"」
「#N/Aエラーです。」
と2回メッセージボックスが表示されます。
セル内にエラーが発生しているかどうかだけならば、VBAのIsError関数で判定できます。
#N/Aエラーかどうかまで判定するには、上記コードのようにVBAのCVErr関数の引数に、
XlCVError列挙型に定義されている定数xlErrNAを指定し
返される値と比較する必要があります。
WorksheetFunction.IsNAで#N/Aエラーを判定するサンプルマクロ
VBAで、セル内で発生するエラーの判定を細かく行おうとすると面倒だということを知った上で、単純に#N/Aエラーを判定するだけならば、ISNA関数を
VBAから利用するのが簡単です。
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メソッド