- ベストアンサー
VBA(Excel)で文字列内の"~"記号だけ半角変換したくない
VBA(Excel)で、StrConvを用いて、文字列内に存在する記号を全角→半角に変換して、再び文字列内に格納するようにしています。 strValue = StrConv(strValue, vbNarrow) しかし、"~"も"~"に変換されてしまいます。 "~"は半角変換しないようにしたいのですが、何か良い手法はありますでしょうか? どなたかご教授下さいませ。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
もし元の文字列に半角の~が入ることがないのであれば、 strValue = StrConv(strValue, vbNarrow) の後に、 strValue = Replace(strValue, "~", "~") で、"~"だけ"~"を変換してはいかがでしょうか。 もし元々の文字列に"~"が入っているのであれば、 strValue = Replace(strValue, "~", "*~*") strValue = StrConv(strValue, vbNarrow) strValue = Replace(strValue, "*~*", "~") のように、元々入っている"~"と、"~"が変換された"~"が区別できるように、いったん他の文字列に変換して、後で元に戻す、というのはいかがでしょうか。
お礼
逆に"~"がある場合は"~"に変換するようにしなければいけなくなるかもしれないので、たぶん Replace 1行のみでいくことになると思いますが、2番目に提案していただいた内容も、とても参考になります。 なるほど!!!と思いました! どうも、ありがとうございました!! m(_"_)m