カタカナ判定


サスライ人  2004-12-22 21:24:58  No: 118463

こんにちは。

文字列にカタカナ(全角・半角)が含まれているかどうかをチェックする
方法として、スマートな方法はないものでしょうか?

今は "アイウエオ....アイウエオ(半角)...ン(半角) "という
文字列を容易して、1文字ずつループさせて調べているのですが

こんな方法があるよ。という方法があれば是非教えていただければ
うれしいです。


魔界の仮面弁士  2004-12-22 21:43:32  No: 118464

Like演算子を利用されては如何でしょう。


いな  2004-12-22 21:56:26  No: 118465

自分はこうやっちゃうなぁ〜
--
'全角カナのチェックを行います
Public Function IsKataKana(ByVal strChk As String) As Boolean
    Dim ret As Boolean
    Dim strPatern As String
    Dim lngLoop As Long
        
    If IsNull(strChk) Then
        IsKataKana = True
        Exit Function
    End If
    
    strPatern = "[アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォッャュョヮーヱヰ]"
    
    For lngLoop = 1 To Len(strChk)
        ret = Mid(strChk, lngLoop, 1) Like strPatern
        
        If ret = False Then
            Exit For
        End If
        
    Next


花ちゃん  2004-12-22 22:13:37  No: 118466

VB6.0 なら下記ではどうでしょうか?

'Microsoft VBScript Regular Expressions 5.5 を参照設定して下さい
Private Sub Text1_Change()
    Dim Reg As New RegExp
    Reg.Pattern = "[\uFF61-\uFF9F]"
    If Reg.Test(StrConv(Text1.Text, vbNarrow)) Then
        MsgBox "カタカナが混じっています"
    End If
End Sub


かな  2004-12-22 23:51:33  No: 118467

If StrConv(Text1.Text, vbWide) <> StrConv(StrConv(Text1.Text, vbWide), vbHiragana) Then
        MsgBox "カタカナあります"
    End If

花ちゃんさんの案を参考に、StrConvだけで。どうでしょう?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加