- ベストアンサー
文字列の漢字の有無の検索
タイトルにあるように、文字列中に漢字が有るか、無いかを調べたいのですが、どのようにするのでしょうか? VB6を使用しています。ご教授御願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 1文字ずつループさせて、文字コードを調べることになると思います。 漢字の文字コードについては、以下のページを参考にして下さい。 http://hp.vector.co.jp/authors/VA017832/hide_chimarl/chimarl09_03.html http://www2.famille.ne.jp/~akio1998/l_x112.html
その他の回答 (4)
- pen_pen_pen
- ベストアンサー率65% (52/79)
漢字=全角文字なんでしょうか? それとも全角英数字やひらがな、カタカナは除いた、普通~の日本語で言うところの「漢字」なんでしょうかね? 漢字=全角文字という事であれば、これでどうですか? Dim lenBUnicode As Integer Dim lenBFromUnicode As Integer Dim str As String str = "abcdeあいうえお" lenBUnicode = LenB(str) lenBFromUnicode = LenB(StrConv(str, vbFromUnicode)) 'VBではUNICODEで文字が扱われる。 'UNICODEでは半角文字も2バイト。 'UNICODEじゃなくした場合にバイト数がUNICODEのちょうど半分になれば全部半角。 If lenBUnicode <> lenBFromUnicode * 2 Then MsgBox "全角文字あり" Else MsgBox "全部半角" End If
- Kuppycat
- ベストアンサー率50% (109/216)
下記の方法で大丈夫だと思う。 Private Sub Form_Click() Dim tmp Dim str Dim i str = "aaaaaあああ" For i = 1 To Len(str) tmp = StrConv(Mid(str, i, 1), vbFromUnicode) If LenB(tmp) > 1 Then MsgBox "漢字発見" Exit For End If Next End Sub
- takasebou
- ベストアンサー率42% (61/144)
strconv(文字型変数,vbNarrow)をつかって、一旦文字を半角に直します。 そうするとひらがなやかたかな、数字は半角文字に変換されますが漢字のコードは変換されないので、あとは一文字ずつ切り取ってループしていき Asc関数を使って文字コードをチェックした時に0~255の範囲に入っていないもの(マイナスの値が出るもの)は基本的に漢字です。 この方法だと一部の特殊記号(ロシア文字とかギリシャ文字とかも漢字として判定してしまう事もありますが、単純なチェックとしては簡単なコードだと思います。 正確にするなら、その辺りのコードで出る値を除外してしまえばいいかと。 以上です。
- 5S6
- ベストアンサー率29% (675/2291)
lenとlenB 使って違っていたら漢字ありってのは? ほかにも関数あるかも。