• ベストアンサー

もしセルが"#N/A"なら~をする・・・には?

Excel2002VBAで、 「指定セルにエラーの"#N/A"が出ている場合~の処理をする」という場合、 If range("a1")="#N/A" then としたら、型が一致しません エラー13と出ました。 どのようにすればうまくいくのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

やって見ると,意外に Sub test03() If Range("a1").Text = "#N/A" Then MsgBox "#N/A エラー" End If End Sub で良いようです。 関数なら=ERROR.TYPE(A1)で"#N/A は 7 です。

myomyon
質問者

お礼

ありがとうございます。これでもできました。 .Textにすればよかったんですね。

その他の回答 (4)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

ヘルプからの抜粋です。 With ActiveSheet If IsError(.Range("A1").Value) Then   errval = .Range("A1").Value   Select Case errval     Case CVErr(xlErrDiv0)       MsgBox "#DIV/0! エラー"     Case CVErr(xlErrNA)       MsgBox "#N/A エラー"     Case CVErr(xlErrName)       MsgBox "#NAME? エラー"     Case CVErr(xlErrNull)       MsgBox "#NULL! エラー"     Case CVErr(xlErrNum)       MsgBox "#NUM! エラー"     Case CVErr(xlErrRef)       MsgBox "#REF! エラー"     Case CVErr(xlErrValue)       MsgBox "#VALUE! エラー"     Case Else       MsgBox "これはセルのエラーではありません。"   End Select End If End With

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.3

#1です。 ワークシート関数の「ISERROR」を使用すれば良いみたいです。

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.2

ちょっと長いですが、 If Application.WorksheetFunction.IsNA(Range("a1")) Then

myomyon
質問者

お礼

ありがとうございます。うまくいきました。 単純に文字列を認識するだけでは駄目みたいでした。

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

VBAのHELPで「セルのエラー値」を検索してみてください。

関連するQ&A