Методы извлечения текста между скобками в VBA (Visual Basic для приложений)

Чтобы извлечь текст между скобками в VBA (Visual Basic для приложений), вы можете использовать различные методы. Вот несколько примеров:

  1. Использование регулярных выражений:

    Sub ExtractTextBetweenBrackets()
    Dim regex As Object
    Dim inputString As String
    Dim extractedText As String
    
    Set regex = CreateObject("VBScript.RegExp")
    inputString = "This is a [sample] text [with] brackets."
    
    With regex
        .Pattern = "\[(.*?)\]"
        .Global = True
        .MultiLine = True
    End With
    
    If regex.Test(inputString) Then
        extractedText = regex.Execute(inputString)(0).SubMatches(0)
        MsgBox extractedText
    Else
        MsgBox "No text found between brackets."
    End If
    End Sub
  2. Использование функции разделения:

    Sub ExtractTextBetweenBrackets()
    Dim inputString As String
    Dim extractedText As String
    
    inputString = "This is a [sample] text [with] brackets."
    
    Dim bracketsStart As Long
    Dim bracketsEnd As Long
    
    bracketsStart = InStr(inputString, "[")
    bracketsEnd = InStr(inputString, "]")
    
    If bracketsStart > 0 And bracketsEnd > 0 And bracketsStart < bracketsEnd Then
        extractedText = Mid(inputString, bracketsStart + 1, bracketsEnd - bracketsStart - 1)
        MsgBox extractedText
    Else
        MsgBox "No text found between brackets."
    End If
    End Sub
  3. Использование манипуляций со строками:

    Sub ExtractTextBetweenBrackets()
    Dim inputString As String
    Dim extractedText As String
    
    inputString = "This is a [sample] text [with] brackets."
    
    Dim startIdx As Long
    Dim endIdx As Long
    
    startIdx = InStr(inputString, "[")
    endIdx = InStr(inputString, "]")
    
    If startIdx > 0 And endIdx > 0 And startIdx < endIdx Then
        extractedText = Mid(inputString, startIdx + 1, endIdx - startIdx - 1)
        MsgBox extractedText
    Else
        MsgBox "No text found between brackets."
    End If
    End Sub