• ベストアンサー

VBA(Excel)で文字列内の"~"記号だけ半角変換したくない

VBA(Excel)で、StrConvを用いて、文字列内に存在する記号を全角→半角に変換して、再び文字列内に格納するようにしています。   strValue = StrConv(strValue, vbNarrow) しかし、"~"も"~"に変換されてしまいます。 "~"は半角変換しないようにしたいのですが、何か良い手法はありますでしょうか? どなたかご教授下さいませ。 よろしくお願い致します。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

もし元の文字列に半角の~が入ることがないのであれば、   strValue = StrConv(strValue, vbNarrow) の後に、   strValue = Replace(strValue, "~", "~") で、"~"だけ"~"を変換してはいかがでしょうか。 もし元々の文字列に"~"が入っているのであれば、   strValue = Replace(strValue, "~", "*~*")   strValue = StrConv(strValue, vbNarrow)   strValue = Replace(strValue, "*~*", "~") のように、元々入っている"~"と、"~"が変換された"~"が区別できるように、いったん他の文字列に変換して、後で元に戻す、というのはいかがでしょうか。

THUBAN
質問者

お礼

逆に"~"がある場合は"~"に変換するようにしなければいけなくなるかもしれないので、たぶん Replace 1行のみでいくことになると思いますが、2番目に提案していただいた内容も、とても参考になります。 なるほど!!!と思いました! どうも、ありがとうございました!! m(_"_)m

関連するQ&A