即効テクニック |
●詳細● Access95以降、AccessはUnicode対応のアプリケーションとなりましたので、Len関数/LenB関数のみで文字列が半角、全角、混在かを判断することは不可能です。 そこで、ある文字列がすべて半角か、すべて全角か、あるいは混在かを判断するのにStrConv関数とLen関数/LenB関数を使った方法をご紹介します。 まず、インプットボックスを表示して、判断する文字列を入力します。 入力された文字列は、StrConv関数でANSI文字列に変換してから文字数とバイト数を求めて判断します。 ●サンプル● Sub Sample() Dim strANSI As String Dim myLen As Integer Dim myLenB As Integer Dim strUnicode As String strUnicode = InputBox(Prompt:="判断する文字列を入力してください", _ Title:="文字列の種類判断") If strUnicode = "" Then Exit Sub End If strANSI = StrConv(strUnicode, vbFromUnicode) myLen = Len(strUnicode) myLenB = LenB(strANSI) If myLen * 2 = myLenB Then MsgBox "全角文字だけです" ElseIf myLen = myLenB Then MsgBox "半角文字だけです" Else MsgBox "全角と半角が混じっています" End If End Sub ●補足説明● Len関数は、文字列内の文字数の取得をします。LenB関数は、文字列のバイト数の取得をします。 StrConv関数は、文字列を指定された種類に変換します。指定できる定数と値は次のとおりです。 定数 値 内容 vbUpperCase 1 文字列を大文字に変換します。 vbLowerCase 2 文字列を小文字に変換します。 vbProperCase 3 文字列の各単語の先頭の文字を大文字に変換します。 vbWide 4 文字列内の半角文字(1バイト)を全角文字(2バイト) に変換します。 vbNarrow 8 文字列内の全角文字(2バイト)を半角文字(1バイト) に変換します。 vbKatakana 16 文字列内のひらがなをカタカナに変換します。 vbHiragana 32 文字列内のカタカナをひらがなに変換します。 vbUnicode 64 ANSI文字列をUnicode文字列に変換します。 vbFromUnicode 128 Unicode文字列をANSI文字列に変換します。