Это должно сработать, хотя ваши URL должны начинаться с http: // или https: //, чтобы их можно было подобрать:
Dim text
text = "<your text with URLs here>"
Dim rgx
Set rgx = New RegExp
rgx.IgnoreCase = True
rgx.Global = True
rgx.Pattern = "([A-Za-z]{3,9})://([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((/[-\+~%/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?"
Dim match, matches
Set matches = rgx.Execute(text)
For Each match in matches
MsgBox match.Value, 0, "Found Match"
Next
Шаблон регулярного выражения для соответствующих URL-адресов взят из блога Криса Фрейера и, похоже, обрабатывает большинство типов URL-адресов, с которыми вы можете столкнуться. Он хорошо работал на тех тестах, которые я проводил с ним.