tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 指定した文字列と文字列の間の文字列を取得する関数(VB6.0)
投稿日: 2009/11/10(Tue) 19:29
投稿者花ちゃん
> 結果的に頑張って自作できたのでここに載せておきます。
見つからなかった場合等問題ありませんか?
チョット試して見ました。

Option Explicit

Public Function Extex(Origin As Variant, LSideword As String, _
                                    RSideword As String) As Variant
   Dim Dt As Variant
   Dt = InStr(Origin, LSideword)
   Dt = Mid(Origin, Dt + Len(LSideword), Len(Origin))
   Extex = Dt
   Dt = InStr(Extex, RSideword)
   Extex = Mid(Extex, 1, Dt - 1)

End Function

Public Function Extex2(ByVal Origin As String, _
      ByVal LSideword As String, ByVal RSideword As String) As String
   Dim Dt1  As Long
   Dim Dt2  As Long
   Dim LenN As Long
   Extex2 = ""
   LenN = Len(LSideword)
   Dt1 = InStr(Origin, LSideword)
   If Dt1 = 0 Then
      Exit Function
   End If
   Dt2 = InStr(Dt1 + LenN, Origin, RSideword)
   If Dt2 > 0 Then
      Extex2 = Mid$(Origin, Dt1 + LenN, Dt2 - (Dt1 + LenN))
   End If
   '本来は、複数個見つかる場合も想定し最後まで検索する必要もあるかと。
   '又、() 内の文字を取得したい場合等は、処理がもう少し複雑になります。
End Function

Private Sub Command1_Click()
   Debug.Print "Extex2 : " & Extex2("ACCD123EFGKH", "ABCD", "EFG")
    Debug.Print "Extex  : " & Extex("ACCD123EFGKH", "ABCD", "EFG")
    Debug.Print "Extex  : " & Extex("ACCD123GKH", "ABCD", "EFG")
End Sub

結果
Extex2 :
Extex  : D123
エラー

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。