入力データに半角カタカナが含まれていないかチェックする関数をVBAで作成したので記録しておく。
どういうチェック方法が一番いいか色々考えたあげく、一番シンプルでわかりやすいと思った方法。
処理ロジックは、以下の通り。
1.チェック対象の文字列を引数として受け取る。
2.ユーザー定義関数内に用意した文字列変数に半角カタカナに該当する文字列を列挙した文字列を代入しておく。
半角カタカナ文字列 → "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ゙゚ー"
3.チェック対象の文字列から1文字ずつ文字を取り出す。
4.Instr関数を使用して、取り出した文字が半角カタカナを列挙した文字列内の何れかの文字に該当しないかチェック。
5.「Instr関数の戻り値が0以外 = 半角カタカナに該当」となるので、ユーザー定義関数の戻り値としてFalseをセットして処理を終了。
6.最後までInstr関数の戻り値が0だったら半角カタカナは含まれていないことになるのでユーザー定義関数の戻り値としてTrueをセットする。

入力データに半角カタカナが含まれていないかチェックするユーザー定義関数のサンプルプログラムを以下に記述。
スポンサードリンク


'引数として受け取った文字列に半角カタカナが含まれていないかチェックするユーザー定義関数
'含まれていない場合は、True、含まれている場合は、Falseを返す。
Function CheckHankaku(strChkData As String) As Boolean
Dim strHan As String, i As Integer

'変数に半角カタカナを列挙した文字列をセットする
strHan = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ゙゚ー"

'引数として受け取った文字列を1文字ずつ取り出して変数strHanの文字列に
'該当するかチェックする。
For i = 1 To Len(strChkData)
If InStr(strHan, Mid(strChkData, i, 1)) <> 0 Then
CheckHankaku = False
Exit Function
End If
Next i

CheckHankaku = True

End Function
スポンサードリンク

  

関連記事