В макросах для Excel иногда требуется производить проверку адреса электронной почты на корректность.
В большинстве случаев нужно быть уверенным не только в том, что такой адрес содержит знак @ и точку, но и в том, что все остальные символы представлены буквами, числами или знаками подчеркивания.
Проще всего реализовать эту проверку с использованием регулярных выражений (объект RegExp)
Sub ПримерПроверкиАдресаПочты() Debug.Print CheckEmail("order@ExcelVBA.ru") ' возвращает TRUE (корректный адрес почты) Debug.Print CheckEmail("123-order@ExcelVBA.ru") ' возвращает TRUE (корректный адрес почты) Debug.Print CheckEmail("create.order@Excel.VBA.ru") ' возвращает TRUE (корректный адрес почты) Debug.Print CheckEmail("mail@Excel-macro.ru") ' возвращает TRUE (корректный адрес почты) Debug.Print CheckEmail("order@ExcelVBA") ' возвращает FALSE (ошибка в адресе почты) Debug.Print CheckEmail("order.ExcelVBA.ru") ' возвращает FALSE (ошибка в адресе почты) Debug.Print CheckEmail("order.ExcelVBA@ru") ' возвращает FALSE (ошибка в адресе почты) End Sub
Используемый в функции шаблон может принимать любое количество цифр и букв, символов подчеркивания, точки и тире перед знаком «@» и после символа «@» до точки, но только числа, буквы и символы подчеркивания после точки.
Код функции CheckEmail: