みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル 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 と計算結果のみの数字に置き換えられてしまうのですが、何故なのでしょうか

置換後も 関数式を残しておきたいのですが何か良い方法はありませんか

よろしくお願いします

投稿日時 - 2009-08-11 08:00:03

QNo.5198192

困ってます

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

式が入力されているセルでは置換処理をスキップしてはどうでしょうか。つまり、

>e.Value = Replace(e.Value, "あ", "")

これをたとえば

If Left(e.Formula, 1) <> "=" Then
e.Value = Replace(e.Value, "あ", "")
End If

としてみては。

投稿日時 - 2009-08-11 08:31:56

お礼

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

投稿日時 - 2009-08-11 09:00:27

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

> A1 の =SUM(A2:A5) が 0 と計算結果のみの数字に置き換えられてしまうのですが、何故なのでしょうか

e.Value = Replace(e.Value, "あ", "")

この式では Range としての e に .Value (値)を設定しています。
なので計算式の結果の値である 0 に置換された結果です。

投稿日時 - 2009-08-11 08:37:58

お礼

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

投稿日時 - 2009-08-11 09:01:09

あなたにオススメの質問