Я нашел решение, которое, кажется, работает, я проверил его с некоторыми действительными и недействительными адресами электронной почты.
Function isEmail(sEmail As String) As Boolean
Dim regexEmail As New RegExp
regexEmail.Pattern = " (^\w+)([.]*)(\w*)[@](\w+)[.](\w+$)"
regexEmail.IgnoreCase = True
isEmail = regexEmail.Test(sEmail)
End Function
'объяснение: ^ \ w + начинается с одной или нескольких букв, цифр или подчеркиваний .
'[.] * Может включать или не включать точку (например, firstName. LastName@live.com)
' \ w * может включать или не включать одну или несколько букв, цифр, или подчеркивание.
'[@] ровно одна @ символ
' \ w + одна или несколько букв, цифр или подчеркиваний.
'[.] ровно одна точка
'(\ w + $), заканчивающийся одной или несколькими буквами, цифрами или подчеркиванием.
Если кто-то увидит что-то, что я пропустил, я приветствую любые предложения по улучшению этого решения. Примечание для тех, кто пытается внедрить это решение: вам потребуется go для Инструменты> Ссылки и добавить ссылку на регулярные выражения Microsoft VBScript, чтобы использовать RegEx в своем приложении. Благодарим Камарапу sh и officeTricks.com , так как я адаптировал код с их страницы.