2007/11/30

VBAのReplace

VBAには、指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返す、Replace 関数があります。



先日、ユーザから入力された文字を、日本語:全角、英数字:半角に整形するモジュールで、「う」が「ウ」に変換されてしまう不具合が見つかりました。

このモジュールではReplace関数を使い、以下のように置換している箇所がありました。


formatString = Replace(strResult, "ウ", "ウ")


指定しているのは半角の「ウ」なのですが、なぜか「う」も置換されてしまいます。



ですので、以下のように、文字列式を評価するときに使用する文字列比較のモードをバイナリ モードで比較するようにして対処しました。


formatString = Replace(strResult, "ウ", "ウ", Compare:=vbBinaryCompare)

0 件のコメント: