[vba]カタカナは全角、英数字は半角にしたい

ハンディーターミナルの商品名の評判が悪い!

StrConv(商品名,vbNarrow)関数で、半角に出来る文字をすべて半角化!

そうした理由は「UCC」「AGF」「1kg」「250ml」など、すべて半角に統一させた方が文字列検索しやすいと思ったから。

でも、問題が・・・・
カタカナも半角になっちゃいます!
「ヤマク食品」が「ヤマク食品」、「ハウス食品」が「ハウス食品」

Android日本語IMEは、半角カタカナが出てこない!
単語候補に表れたとしても、スクロールの下の方・・・

で、作ったのがこのスクリプト「カタカナは全角、英数字は半角にする」

1:まずは、すべてを全角にする。
2:1文字ごとのASCIIコードを調べる
3:全角数字、全角アルファベットであればStrConv(1文字, vbNarrow)で半角変換
それ以外は、素通り

完成するまで、誰も居ない事務所で2時間・・・・
家に帰りたいよ!

myNAME = StrConv(商品名, vbWide)

For i = 1 To Len(myNAME)
    
  tmpTEXT = Mid(myNAME, i, 1)
    
  If Asc(tmpTEXT) <= -32127 And Asc(tmpTEXT) <= -32102 Then
        '大文字全角
            tmpKANA = tmpKANA & StrConv(tmpTEXT, vbNarrow)
        ElseIf Asc(tmpTEXT) <= -32160 And Asc(tmpTEXT) <= -32135 Then
        '小文字全角
            tmpKANA = tmpKANA & StrConv(tmpTEXT, vbNarrow)
        ElseIf Asc(tmpTEXT) <= -32177 And Asc(tmpTEXT) <= -32168 Then
        '全角数字
        tmpKANA = tmpKANA & StrConv(tmpTEXT, vbNarrow)
   Else
        tmpKANA = tmpKANA & tmpTEXT
        
   End If
    
Next
    
myNAME = tmpKANA

実は今日、「ハンディの商品名が変だ!変だ!」とクレームの嵐!

昨夜ネットで拾った「カタカナ半角→全角」スクリプトを商品マスタbulk impotプログラムにコピペしたのが原因。

そのスクリプト、最終文字がカタカナかカタカナ以外で結果が変わる不思議なプログラムみたい!

やっぱ、パクリはデメですね!

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA