Вы также можете использовать регулярные выражения - на мой взгляд, очень недоиспользуемые возможности VBA.
Dim r1 As New RegExp
Dim r2 As New RegExp
r1.Pattern = "^!"
r2.Pattern = "!$"
st = r1.Replace(st, "")
st = r2.Replace(st, "")
Атом ^
означает «начинается с», а атом $
означает «заканчивается на. "
Кроме того, вы можете извлечь совпадение между восклицательными знаками, используя регулярное выражение захвата ()
атомов:
Dim r As New RegExp
Dim m As MatchCollection
r.Pattern = "^!(.+)!$"
Set m = r.Execute(st)
If m.Count > 0 Then
st = m.Item(0).SubMatches.Item(0)
End If
Большим преимуществом регулярных выражений является то, что у вас есть возможность неизменить текст внутри символов.Например, это все равно будет работать:
!I like Pie! It's delicious!!
Поддержка Regex может быть добавлена в любой проект VBA путем добавления ссылки на «Регулярные выражения Microsoft VBScript 5.5.»