VBAには、指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返す、Replace 関数があります。
先日、ユーザから入力された文字を、日本語:全角、英数字:半角に整形するモジュールで、「う」が「ウ」に変換されてしまう不具合が見つかりました。
このモジュールではReplace関数を使い、以下のように置換している箇所がありました。
formatString = Replace(strResult, "ウ", "ウ")
指定しているのは半角の「ウ」なのですが、なぜか「う」も置換されてしまいます。
ですので、以下のように、文字列式を評価するときに使用する文字列比較のモードをバイナリ モードで比較するようにして対処しました。
formatString = Replace(strResult, "ウ", "ウ", Compare:=vbBinaryCompare)
0 件のコメント:
コメントを投稿