こんにちは。
文字列にカタカナ(全角・半角)が含まれているかどうかをチェックする
方法として、スマートな方法はないものでしょうか?
今は "アイウエオ....アイウエオ(半角)...ン(半角) "という
文字列を容易して、1文字ずつループさせて調べているのですが
こんな方法があるよ。という方法があれば是非教えていただければ
うれしいです。
Like演算子を利用されては如何でしょう。
自分はこうやっちゃうなぁ〜
--
'全角カナのチェックを行います
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
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
If StrConv(Text1.Text, vbWide) <> StrConv(StrConv(Text1.Text, vbWide), vbHiragana) Then
MsgBox "カタカナあります"
End If
花ちゃんさんの案を参考に、StrConvだけで。どうでしょう?
ツイート | ![]() |