文字列が特定の条件を満たすかどうかを判定する関数
タイトルのマクロは、以下です。
'********************************************************
'* 関数名: IsValidString
'* 概要 : 文字列が特定の条件を満たすかどうかを判定する関数
'*
'* 引数:
'* text [String] - 判定する文字列
'*
'* 戻り値:
'* [Boolean] - 条件に合致すれば True、合致しない場合は False を返す
'*
'* 処理内容:
'* - 数字のみの文字列は False を返す
'* - 「4」で始まり「X」で終わる文字列で、その間は数字の場合、は False を返す
'* - 「9」で始まり「X」で終わる文字列で、その間は数字の場合、は False を返す
'* - 空文字列("")は False を返す
'* - それ以外の場合は True を返す
'********************************************************
Function IsValidString(ByVal text As String) As Boolean
' 正規表現オブジェクトを作成(VBScript.RegExpを利用してパターンマッチを実施)
Dim objRegEx As Object
Set objRegEx = CreateObject("VBScript.RegExp")
' 条件1: 数字のみ(半角)の文字列かを判定
objRegEx.IgnoreCase = True ' 大文字小文字を区別しない(この場合は無効だが設定)
objRegEx.Global = True ' 文字列全体を対象に検索
objRegEx.Pattern = "^\d+$" ' 正規表現パターン:^は文字列の開始、\d+は1回以上の数字、$は文字列の終了
' 数字のみで構成された文字列をチェック
' 数字のみの文字列の場合、False を返す
If objRegEx.test(text) Then
IsValidString = False ' 数字のみの文字列が入力された場合、Falseを返す
Exit Function ' 関数を終了
End If
' 条件2: 「4」で始まり「X」で終わる文字列かを判定
objRegEx.Pattern = "^4\d*X$" ' 正規表現パターン:^4で始まり、任意の数字が続き、最後にXで終わる
' 「4」で始まり「X」で終わる文字列をチェック
'objRegEx.Pattern = "^4.*X$" ' 正規表現パターン:^4で始まり、任意の文字列があり、Xで終わる
If objRegEx.test(text) Then
IsValidString = False ' 条件に一致した場合、Falseを返す
Exit Function ' 関数を終了
End If
' 条件3: 「9」で始まり「X」で終わる文字列かを判定
objRegEx.Pattern = "^9\d*X$" ' 正規表現パターン:^9で始まり、任意の数字が続き、最後にXで終わる
' 「9」で始まり「X」で終わる文字列をチェック
'objRegEx.Pattern = "^9.*X$" ' 正規表現パターン:^9で始まり、任意の文字列があり、Xで終わる
If objRegEx.test(text) Then
IsValidString = False ' 条件に一致した場合、Falseを返す
Exit Function ' 関数を終了
End If
' 条件4: 空文字列("")は False を返す
If text = "" Then
IsValidString = False ' 空文字列の場合はFalseを返す
Exit Function ' 関数を終了
End If
' 条件に合致しない場合は True を返す
IsValidString = True ' どれにも当てはまらない場合、Trueを返す
End Function
コメントの詳細
- 関数の概要:
- この関数は文字列が特定の条件に合致するかどうかを判定します。
- 条件に合致しない場合に
False
を返し、条件に合致しない場合にはTrue
を返します。
- 条件1: 数字のみ(半角):
- 数字のみの文字列を判定します。正規表現パターン
^\d+$
を使用し、文字列が数字のみの場合にFalse
を返します。
- 数字のみの文字列を判定します。正規表現パターン
- 条件2: 「4」で始まり「X」で終わる:
- 正規表現パターン
^4\d*X$
を使用し、文字列が「4」で始まり、任意の数字が続き、「X」で終わる場合にFalse
を返します。
- 正規表現パターン
- 条件3: 「9」で始まり「X」で終わる:
- 正規表現パターン
^9\d*X$
を使用し、文字列が「9」で始まり、任意の数字が続き、「X」で終わる場合にFalse
を返します。
- 正規表現パターン
- 条件4: 空文字列(””):
- 空文字列の場合は
False
を返します。
- 空文字列の場合は
- 条件に合致しない場合:
- どれにも当てはまらない場合には
True
を返します。
- どれにも当てはまらない場合には