dポイントプレゼントキャンペーン実施中!

タイトルにあるように、文字列中に漢字が有るか、無いかを調べたいのですが、どのようにするのでしょうか?

VB6を使用しています。ご教授御願いします。

A 回答 (5件)

こんにちは。

maruru01です。

1文字ずつループさせて、文字コードを調べることになると思います。
漢字の文字コードについては、以下のページを参考にして下さい。

http://hp.vector.co.jp/authors/VA017832/hide_chi …

http://www2.famille.ne.jp/~akio1998/l_x112.html

参考URL:http://hp.vector.co.jp/authors/VA017832/hide_chimarl/chimarl09_03.html,http://www2.famille.ne.jp/~akio1998/l_x112.html
    • good
    • 0

漢字=全角文字なんでしょうか?


それとも全角英数字やひらがな、カタカナは除いた、普通~の日本語で言うところの「漢字」なんでしょうかね?
漢字=全角文字という事であれば、これでどうですか?
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
    • good
    • 0

下記の方法で大丈夫だと思う。



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
    • good
    • 0

strconv(文字型変数,vbNarrow)をつかって、一旦文字を半角に直します。



そうするとひらがなやかたかな、数字は半角文字に変換されますが漢字のコードは変換されないので、あとは一文字ずつ切り取ってループしていき Asc関数を使って文字コードをチェックした時に0~255の範囲に入っていないもの(マイナスの値が出るもの)は基本的に漢字です。

この方法だと一部の特殊記号(ロシア文字とかギリシャ文字とかも漢字として判定してしまう事もありますが、単純なチェックとしては簡単なコードだと思います。

正確にするなら、その辺りのコードで出る値を除外してしまえばいいかと。

以上です。
    • good
    • 0

lenとlenB


使って違っていたら漢字ありってのは?

ほかにも関数あるかも。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!