文字列から抽出したい文字の前と後の文字を探してFrom~Toの間の文字を抜き取るFromの検索文字は左からn番目(インデックス)対応 ※ダブルコーテーションの書き方は使用例を参照

<分類:値抜き取り>
<使用例:文字列から特定の文字の抽出>

<プログラム例>

Sub 使用例()
   
   Dim s As String
   Dim s2 As String
   Dim fr_moji As String
   Dim to_moji As String
   Dim fr_ix As Long
   Dim s0 As String

  '文字中のダブルコーテーションの書き方は"を2つ記述して""のように書く
   s = "C:\Users""\aaa\Desktop""\test.xls"

   fr_moji = "Users"""
   fr_ix = 1
   
   to_moji = """"

   s0 = s
   s2 = 共通_文字列抜出し(s, fr_moji, fr_ix, to_moji)
   
   MsgBox ("元の文字は" & s0 & Chr(13) & "From検索文字は" & fr_moji & "(" & fr_ix & "番目)" & Chr(13) & "    To検索文字は" & to_moji & " ※From検索文字以降の文字列が対象" & Chr(13) & "From~Toの間の文字(抜き取り文字)は " & s2 & "です")

End Sub

Function 共通_文字列抜出し(p1, p2, p3, p4)

   Dim i As Long
   Dim cnt As Long
   
   Dim mojisu As Long
   Dim mojisu2 As Long
   
   mojisu = Len(p1)
   mojisu2 = Len(p2)
   cnt = 0
   
   共通_文字列抜出し = ""

  '出現回数分処理
   For i = 1 To p3
   
      If InStr(p1, p2) > 0 Then
            p1 = Mid(p1, InStr(p1, p2) + mojisu2, mojisu - InStr(p1, p2) + mojisu2)
            mojisu = Len(p1)
            cnt = cnt + 1
      End If
   Next i
   
   If cnt = p3 Then

      If InStr(p1, p4) > 0 Then
         共通_文字列抜出し = Mid(p1, 1, InStr(p1, p4) - 1)
      End If
   
   End If

End Function