守破離でいこう! -Let's go with SyuHaRi!-

2007/11/30

VBAのReplace

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

先日、ユーザから入力された文字を、日本語:全角、英数字:半角に整形するモジュールで、「う」が「ウ」に変換されてしまう不具合が見つかりました。
このモジュールではReplace関数を使い、以下のように置換している箇所がありました。

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

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

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

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

ラベル:

naoki 19:52
HaloScan: |

0 Comments:

Add a comment