- ベストアンサー
置換のVBA
エクセルVBAの置換のことです。 ("abc 2rme3xk5") を ("abc N") のように置換させるにはどうすればいいでしょうか? Nは変数です。 ( ) や " も対象です。 以下のようにやってみましたがダメでした。 Rng.Value = Replace(Rng.Value,"abc*""","abc " & N & """")
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Rng.Value = Replace(Rng.Value, "(""abc 2rme3xk5"")", "(""abc " & N & """)") です。
その他の回答 (4)
- NARA-OOSAKA
- ベストアンサー率18% (2/11)
任意の位置のabcを求めるなら MID(D4,FIND("abc",D4,1),3) の様にして abcの位置を切り出してから処理をすると良いと思います MID(D4,FIND("abc",D4,1),3) & " " & N D4に対象の文字列を入れます と言う感じに成ると思います
お礼
ありがとうございます。
- mlm
- ベストアンサー率62% (10/16)
#2で答えたのですが、質問の意味取り違えているようで・・・ ただ単純に 2rme3xk5 を 変数N に置き換えたいのなら、普通に Replace(Rng.Value,"2rme3xk5",N) でいいと思いますが?
補足
やりたいことは、 A1 → ("abc 2rme3xk5") A2 → (eww3 abc 34ftwer0") A3 → (342rqwr32234 abc r34r434ge") などの状況で、abc以降をいずれの場合も、abc N") にしたいということでした。
- NARA-OOSAKA
- ベストアンサー率18% (2/11)
値がC6のセルに入っているとして 先頭から3文字を固定で後ろに変数をつけるのなら 必要な文字を切り出す関数 Mid を使用して Range("C6").Select ActiveCell.FormulaR1C1 = Mid(Range("C6"), 1, 3) & " " & N でできます。
お礼
ありがとうございます。
- mlm
- ベストアンサー率62% (10/16)
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にしてしまします)
お礼
ありがとうございます。
お礼
昨日に続いて、ありがとうございます!! うまくいきました。 2rme3xk5 を * でも大丈夫でした。