VBA 半角>全角、全角>半角変換の注意事項・記号について [VBA]
半角全角の変換と言うと、StrConvのvbWide・vbNarrowを使って変換する方法が一般的だと思います。
概ねの文字は問題なく変換できるのですが、下記のように別途対応が必要な場合もあります。
テスト環境は、VistaとAccess2010です。
円記号「¥」の変換ですが、半角から全角への変換ができません。
その逆、全角から半角への変換はできてます。
全角バックスラッシュも、半角に変換されません。
半角パックスラッシュの文字コードは5Cなので、円記号に相当するのですが、全角から変換はできないようです。
半角ダブルクォーテーションの全角変換です。
なんかそれっぽい物に変換されていますが、普段目にする物とはちょっと違うようです。
一般的なのは、下のやつだと思います。
全角のダブルクォーテーションの半角変換はとりあえず半角に変換されます。
しかし、上記の通り、全角>半角>全角と変換しても、元には戻りません。
シングルクォーテーションいろいろ。
半角を全角に変換すると、普段見ない記号に変換されています。
これを再び半角に変化すると、元のシングルクォーテーションに戻りました。
全角のシングルクォーテーションは、それらしい物が2つありますが、どちらも半角に変換されました。
以上はたぶん一例に過ぎないと思われます。
プログラムを作る側からすると、「全角しか格納したくない・半角しか格納したくない」と言った場合に、利用者への便宜を図って変換可能なら自動で変換してやろう、とした場合、全角半角が変換されない場合はかえって問題になってしまいます。
多少変な記号になっても、全角半角が変換されれば、さして問題にならないように思います。
変換できない円記号などは、個別に変換してやる必要があります。
また、他にどんな記号が変換できないかわからないので、全角半角変換を行う際は、StrConvで変換したら、すべて全角・半角になったかチェックする処理を入れておくのが安全です。
コメント 0