VBAで対象の文字列が指定した文字で始まっているか、または終わっているかを確認する
Functionを作成してみます。
文字列が指定された文字列で始まるか確認する
対象の文字列が指定した文字で始まっているか確認するFunctionです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Public Function StartsWith(target_str As String, search_str As String) As Boolean '################################################################################### 'target_str文字列がsearch_str文字列で始まっているか確認する 'search_strで始まっている場合はTrue 'search_strで始まっていない、もしくはsearch_strがtarget_strの文字数を超える場合はFalseを返す '################################################################################### If Len(search_str) > Len(target_str) Then Exit Function End If If Left(target_str, Len(search_str)) = search_str Then StartsWith = True End If End Function |
作成したStartsWithをテストしてみると以下の結果が帰ってきます。
1 2 3 4 5 6 7 8 9 10 11 12 |
Public Sub TestStartsWith() 'StartsWithのテスト Dim targetStr As String targetStr = "あいうえお" Debug.Print StartsWith(targetStr, "あ") 'True Debug.Print StartsWith(targetStr, "あい") 'True Debug.Print StartsWith(targetStr, "かき") 'False Debug.Print StartsWith(targetStr, "あいうえおか") 'False(検索対象文字列より検索文字列が長いため) End Sub |
文字列が指定された文字列で終わるか確認する
対象の文字列が指定した文字で終わっているか確認するFunctionです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Public Function EndsWith(target_str As String, search_str As String) As Boolean '################################################################################### 'target_str文字列がsearch_str文字列で終わっているか確認する 'search_strで終わっている場合はTrue 'search_strで終わっていない、もしくはsearch_strがtarget_strの文字数を超える場合はFalseを返す '################################################################################### If Len(search_str) > Len(target_str) Then Exit Function End If If Right(target_str, Len(search_str)) = search_str Then EndsWith = True End If End Function |
作成したEndsWithをテストしてみると以下の結果が帰ってきます。
1 2 3 4 5 6 7 8 9 10 11 12 |
Public Sub TestEndsWith() 'EndsWithのテスト Dim targetStr As String targetStr = "あいうえお" Debug.Print EndsWith(targetStr, "お") 'True Debug.Print EndsWith(targetStr, "えお") 'True Debug.Print EndsWith(targetStr, "けこ") 'False Debug.Print EndsWith(targetStr, "あいうえおか") 'False(検索対象文字列より検索文字列が長いため) End Sub |
コメント