■  半角・全角チェック

func_GetByteを使って半角・全角チェックの混在チェックをする例です。

【func_ChkCahr】
    Function func_ChkCahr(ByVal intTYPE As Integer, ByVal strCHAR As String) As Boolean
        Dim lngLEN As Long                    '文字数(≠バイト数)
        Dim intPOS As Integer                 'チェックポジション
        Dim strMOJI As String                 'チェックする文字(1文字)
        Dim intMOJILen As Integer             'チェックする1文字の長さ

        lngLEN = strCHAR.Length               '文字列全体長さ
        intPOS = 1                            'チェック開始位置=1

        Select Case intTYPE
            Case 1, 2, 3
            Case Else
                GoTo NG
        End Select

        Do While intPOS <= lngLEN
            strMOJI = Mid(strCHAR, intPOS, 1)   '1文字取り出し
            intMOJILen = func_GetByte(strMOJI)  '1文字のバイト数カウント

            If intMOJILen = 1 Then              '1バイト=半角
                If intTYPE = 1 Then             'チェックタイプ=半角
                ElseIf intTYPE = 2 Then         'チェックタイプ=全角
                    GoTo NG
                Else
                End If
            Else                                '≠1バイト=全角
                If intTYPE = 1 Then             'チェックタイプ=半角
                    GoTo NG
                ElseIf intTYPE = 2 Then         'チェックタイプ=全角
                Else
                End If
            End If

            intPOS += 1
        Loop
OK:
        func_ChkCahr = True
        Exit Function
NG:
        func_ChkCahr = False
    End Function

func_ChkCahrを呼ぶ側

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
                                                                      Handles Button4.Click
        If func_ChkCahr(1, Me.TextBox1.Text) = False Then
            MessageBox.Show("全角が混在しています")
        End If

    End Sub

func_ChkCahrの1番目のパラメータは、1が半角エリアの全角混在チェック、2が全角エリアの半角混在チェックです。

※テキストエリアに対する単純なチェックなら、プロパティのCharacterCasingやIMEModeでも制御することができます。


BEFORE PAGE

TOP PAGE