• ベストアンサー

エクセルVBA 関数エラー箇所を特定の文字に置換

VBAの質問です。エクセル2007を使用しています。 選択しているシート内に関数のエラーがあった場合、 エラー箇所を特定の文字列に置換することは可能でしょうか。 実行した時のイメージ画像を添付致します。 何卒よろしくお願いいたします。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.4

こんにちは。 指定した範囲の中に、 数式が設定してあって、エラー値を返すセルがあれば、 そのセル範囲すべてを SpecialCells メソッドで取得し 対象が見つかった場合は、値を設定します。 仮に、D列全体のエラー値を探すように書いています。   Set Target = Cells.SpecialCells(xlCellTypeFormulas, xlErrors) のように書けばシート全体を探します。 なるべく、狭く範囲指定した方がいいので、 Rangeで必要十分な範囲を指定するようにしてください。 ' ' 標準モジュール Sub Re8257713()   Dim Target As Range   On Error Resume Next   Set Target = Range("D:D").SpecialCells(xlCellTypeFormulas, xlErrors)   On Error GoTo 0   If Target Is Nothing Then Exit Sub   Target.Value = "あ" End Sub

jjnnkk
質問者

お礼

ご回答ありがとうございます。 初心者中の初心者なので、コード(?)をご丁寧に書いて頂き大変助かりました!! そのままコピーさせて使用させて頂きます。 教えて頂いたとおり、シート全体はやめて、範囲を指定するようにしました。 本当にありがとうございました!!

その他の回答 (3)

回答No.3

本文にVBAって書いてあったのね 失礼しました。

  • FEX2053
  • ベストアンサー率37% (7995/21381)
回答No.2

いやだから、考える前に If IsError(Selection.Value) Then Selection.Value = "あ" そういう話でしょ?

jjnnkk
質問者

お礼

ご回答ありがとうございます。 Sub test() If IsError(Selection.Value) Then Selection.Value = "あ" End Sub とやってみたところ、1つのセルを選択した状態では上手くいくのですが、 範囲にしようとすると、自分で応用させる事ができず失敗してしまいました。 せっかく教えて頂いたのに申し訳ありません。 初心者であることをお伝え漏れていました。。。。

回答No.1
jjnnkk
質問者

お礼

ご回答ありがとうございます。 そうなんです、今回VBAを使用して置き換えを行いたく、、 説明が不足しており、申し訳ありませんでした。。。

関連するQ&A