• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Replaceメソッド 完全一致で置換したい)

VBAのReplaceメソッドで完全一致で置換する方法

このQ&Aのポイント
  • VBAのReplaceメソッドを使って完全一致で置換する方法を教えてください。
  • Excel.Range.Replaceメソッドではなく、VBA.Strings.Replaceメソッドを使って置換を行いたい場合、置換対象と置換前文字が一致する(完全一致)場合のみ置換されるようにする方法を教えてください。
  • Excel.Range.Replaceメソッドとは異なり、VBA.Strings.ReplaceメソッドではLookAtのような条件を指定することはできないため、完全一致で置換するには別の方法が必要です。どのような方法があるでしょうか?

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

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

その「完全一致」をReplaceでやる意味はどこにあるんでしょうか…? やろうとしていることは、置換前が変数sだとして If s = "ab" Then s = "" と同じことになっているわけですが。 まあどうしてもReplaceじゃないと嫌だというなら、RegExp.Replaceを使ったらどうですか? Dim re As New RegExp re.Pattern = "^ab$" re.Replace("ab","") あと、意味は分かるから別にいいけど >Excel.Range.Replace >VBA.Strings.Replace こんな書き方は無い。 (String「s」というのは単なる打ち間違いだと思うのでツッコみません)

RVMUAXWXZKS
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

まぁ敢えてreplace関数を使いたいなら、 dim exp as string, fnd as string fnd = "ab" exp = "ab" msgbox replace(exp, fnd, "", count:=(exp = fnd)) exp = "abc" msgbox replace(exp, fnd, "", count:=(exp = fnd)) とかいった具合でしょうか。 明らかに if fnd = exp then で処理したほうが簡単と私も思いますが。

RVMUAXWXZKS
質問者

お礼

ありがとうございます。

関連するQ&A

専門家に質問してみよう