• ベストアンサー

置換のVBA

エクセルVBAの置換のことです。 ("abc 2rme3xk5")  を  ("abc N")  のように置換させるにはどうすればいいでしょうか? Nは変数です。 ( )  や " も対象です。 以下のようにやってみましたがダメでした。 Rng.Value = Replace(Rng.Value,"abc*""","abc " & N & """")

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

Rng.Value = Replace(Rng.Value, "(""abc 2rme3xk5"")", "(""abc " & N & """)") です。

yusari
質問者

お礼

昨日に続いて、ありがとうございます!! うまくいきました。 2rme3xk5 を * でも大丈夫でした。

その他の回答 (4)

回答No.5

任意の位置のabcを求めるなら   MID(D4,FIND("abc",D4,1),3) の様にして abcの位置を切り出してから処理をすると良いと思います   MID(D4,FIND("abc",D4,1),3) & " " & N D4に対象の文字列を入れます と言う感じに成ると思います

yusari
質問者

お礼

ありがとうございます。

  • mlm
  • ベストアンサー率62% (10/16)
回答No.4

#2で答えたのですが、質問の意味取り違えているようで・・・ ただ単純に 2rme3xk5 を 変数N に置き換えたいのなら、普通に Replace(Rng.Value,"2rme3xk5",N) でいいと思いますが?

yusari
質問者

補足

やりたいことは、 A1 → ("abc 2rme3xk5") A2 → (eww3 abc 34ftwer0") A3 → (342rqwr32234 abc r34r434ge") などの状況で、abc以降をいずれの場合も、abc N") にしたいということでした。

回答No.3

値がC6のセルに入っているとして 先頭から3文字を固定で後ろに変数をつけるのなら 必要な文字を切り出す関数 Mid を使用して Range("C6").Select ActiveCell.FormulaR1C1 = Mid(Range("C6"), 1, 3) & " " & N でできます。

yusari
質問者

お礼

ありがとうございます。

  • mlm
  • ベストアンサー率62% (10/16)
回答No.2

Replaceでは無理でしょう。Replaceの構文は Replace(変換する文字列,変換される文字列,変換する文字列)です。 Replace("abcde","ab","AB")はABcdeが返されます。 変換したい文字列をsとして If InStr(s, "abc") > 0 Then s = Left$(s, InStr(s, "abc") + 2) & Format(n, "0") End If MsgBox s でどうでしょう? sがabcdeでnが10ならabc10が返ってきます。 (文字列にabcが含まれていれば、それ以降をnにしてしまします)

yusari
質問者

お礼

ありがとうございます。

関連するQ&A