かつては正規表現を使用していました。別の方法は、Split を使用して、さまざまな区切り文字で文字列を分割することです。
Option Explicit
Sub splitMethod()
Dim Str As String
Str = Sheet1.Range("A1").Value
Debug.Print Split(Str, """")(1)
Debug.Print Split(Split(Str, ">")(1), "</a")(0)
End Sub
Sub RegexMethod()
Dim Str As String
Dim oRegex As Object
Dim regexArr As Object
Dim rItem As Object
'Assumes Sheet1.Range("A1").Value holds example string
Str = Sheet1.Range("A1").Value
Set oRegex = CreateObject("vbscript.regexp")
With oRegex
.Global = True
.Pattern = "(href=""|>)(.+?)(""|</a>)"
Set regexArr = .Execute(Str)
'No lookbehind so replace unwanted chars
.Pattern = "(href=""|>|""|</a>)"
For Each rItem In regexArr
Debug.Print .Replace(rItem, vbNullString)
Next rItem
End With
End Sub
'Output:
'http://www.nbc.com/xyz
'I love this show
これは、または文字列の先頭、href="
または間に任意の文字 (\n 改行を除く) を含む文字列の末尾に 一致します。>
"
</a>
(.+?)