指定文字と指定文字の間の文字列を取得する関数
タイトルのマクロです。
'**************************************
'* 指定文字と指定文字の間の文字列を取得
'* originalString:対象文字列
'* startTxt:この文字以降を取得
'* endTxt:この文字以前を取得
Private Function ExtractSubstring(ByVal originalString As String _
, ByVal startTxt As String _
, ByVal endTxt As String) As String
Dim startIndex As Long
Dim endIndex As Long
Dim extractedText As String
' 最初の指定文字の位置を検索
startIndex = InStr(1, originalString, startTxt)
If startIndex > 0 Then
' 最後の指定文字の位置を検索
endIndex = InStr(startIndex, originalString, endTxt)
If endIndex > 0 Then
' 最初の指定文字から最後の指定文字までの部分文字列を取得
extractedText = Mid(originalString, startIndex + 1, endIndex - startIndex - 1)
Else
' 最後の指定文字が見つからない場合の処理
MsgBox "「" & endTxt & "」が見つかりませんでした。"
End If
Else
' 最初の指定文字が見つからない場合の処理
MsgBox "「" & startTxt & "」が見つかりませんでした。"
End If
ExtractSubstring = extractedText
End Function
使用例は以下です。
Private Sub 使用例()
MsgBox ExtractSubstring("aaa:fs&ss", ":", "&")
End Sub
このマクロを実行すると、以下、画像のように、「:」と「&」の文字列「fs」が表示されます。