Я хочу проверить значения, отправленные в электронную почту Outlook в VBA
. Я нашел несколько примеров, таких как: -
http://www.geeksengine.com/ article / validate-email-vba.html
Используя код с сайта выше, возвращается адрес электронной почты 1@1.com True или действительный. Однако 1@1.com; 2@1.com возвращается как недействительный. Хотя это недействительный адрес электронной почты, это допустимое значение для поля To в Outlook.
Можно ли проверить значение, например 1@1.com; 2@1.com, используя VBA?
Используйте функцию Split(), чтобы разделить строку на отдельные адреса и проверить их в цикле с помощью вашей функции.
Если все адреса действительны, исходная строка действительна.
Приятная вещь: вам не нужны отдельные случаи. Один адрес без ; вернет один элемент массива из Split(), и цикл будет просто запускаться один раз.
Чтобы проверить несколько идентификаторов электронной почты, используя функцию regex ниже:
Public Function ValidateEmailAddress(ByVal strEmailAddress As String) As Boolean
On Error GoTo Catch
Dim objRegExp As New RegExp
Dim blnIsValidEmail As Boolean
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "^((\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)\s*[;]{0,1}\s*)+$"
blnIsValidEmail = objRegExp.test(strEmailAddress)
ValidateEmailAddress = blnIsValidEmail
Exit Function
Catch:
ValidateEmailAddress = False
MsgBox "Module: " & MODULE_NAME & " - ValidateEmailAddress function" & vbCrLf & vbCrLf _
& "Error#: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function