• ベストアンサー

エクセル VBA Replace について

XP microsoft visual basic 6.0 です はじめに A1 に =SUM(A2:A5) と記入してます A2 から A5 には何も記入されていないので A1 の値は 0 です そこで Sub a() Dim e As Range For Each e In ActiveSheet.UsedRange e.Value = Replace(e.Value, "あ", "") Next End Sub を実行すると A1 の =SUM(A2:A5) が 0 と計算結果のみの数字に置き換えられてしまうのですが、何故なのでしょうか 置換後も 関数式を残しておきたいのですが何か良い方法はありませんか よろしくお願いします

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

  • ベストアンサー
回答No.1

式が入力されているセルでは置換処理をスキップしてはどうでしょうか。つまり、 >e.Value = Replace(e.Value, "あ", "") これをたとえば If Left(e.Formula, 1) <> "=" Then e.Value = Replace(e.Value, "あ", "") End If としてみては。

r576135768
質問者

お礼

このような解決策があったのですね 無事完成させることができました ありがとうございました

その他の回答 (1)

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.2

> A1 の =SUM(A2:A5) が 0 と計算結果のみの数字に置き換えられてしまうのですが、何故なのでしょうか e.Value = Replace(e.Value, "あ", "") この式では Range としての e に .Value (値)を設定しています。 なので計算式の結果の値である 0 に置換された結果です。

r576135768
質問者

お礼

単純に "あ" を "" へと置換する意味でしか考えていませんでした これからまた勉強に励みたいと思います ありがとうございました

関連するQ&A