メインコンテンツへスキップ
【VBA】文字列が指定された文字列で始まる、または終わるか確認する(StartsWith,EndsWith)

【VBA】文字列が指定された文字列で始まる、または終わるか確認する(StartsWith,EndsWith)

··2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。
目次

VBAで対象の文字列が指定した文字で始まっているか、または終わっているかを確認するFunctionを作成してみます。

文字列が指定された文字列で始まるか確認する
#

対象の文字列が指定した文字で始まっているか確認するFunctionです。

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をテストしてみると以下の結果が帰ってきます。

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です。

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をテストしてみると以下の結果が帰ってきます。

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

関連記事

【VBA】Backlog APIで課題を操作する
··8 分
Programming VBA Backlog
Excel VBA Editorの挙動がおかしい時の対処方法
·3 分
Programming VBA
【VBA】マウスの座標を取得する
··3 分
Programming VBA