SSブログ

VBA 半角>全角、全角>半角変換の注意事項・記号について [VBA]

 半角全角の変換と言うと、StrConvvbWidevbNarrowを使って変換する方法が一般的だと思います。
 概ねの文字は問題なく変換できるのですが、下記のように別途対応が必要な場合もあります。

 テスト環境は、VistaとAccess2010です。

 円記号「¥」の変換ですが、半角から全角への変換ができません。
 その逆、全角から半角への変換はできてます。


 全角バックスラッシュも、半角に変換されません。
 半角パックスラッシュの文字コードは5Cなので、円記号に相当するのですが、全角から変換はできないようです。


 半角ダブルクォーテーションの全角変換です。
 なんかそれっぽい物に変換されていますが、普段目にする物とはちょっと違うようです。
 一般的なのは、下のやつだと思います。

 全角のダブルクォーテーションの半角変換はとりあえず半角に変換されます。
 しかし、上記の通り、全角>半角>全角と変換しても、元には戻りません。


 シングルクォーテーションいろいろ。
 半角を全角に変換すると、普段見ない記号に変換されています。
 これを再び半角に変化すると、元のシングルクォーテーションに戻りました。
 全角のシングルクォーテーションは、それらしい物が2つありますが、どちらも半角に変換されました。

 以上はたぶん一例に過ぎないと思われます。
 プログラムを作る側からすると、「全角しか格納したくない・半角しか格納したくない」と言った場合に、利用者への便宜を図って変換可能なら自動で変換してやろう、とした場合、全角半角が変換されない場合はかえって問題になってしまいます。
 多少変な記号になっても、全角半角が変換されれば、さして問題にならないように思います。

 変換できない円記号などは、個別に変換してやる必要があります。

 また、他にどんな記号が変換できないかわからないので、全角半角変換を行う際は、StrConvで変換したら、すべて全角・半角になったかチェックする処理を入れておくのが安全です。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
※URL(リンク)は記述できません。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。