VBA Макросы: Как проверить правильность ввода инициалов и фамилии с помощью регулярных выражений?

Автор KR, 30 сентября 2019, 18:41

KR

Как проверить, правильно ли юзер ввёл текст в формате "И.О. Фамилия" с помощью объекта "VBScript.RegExp"?

KR

Сам нашёл решение. Макрос учитывает фамилии, в которых есть один дефис, пример такой фамилии: Петров-Водкин.

Макрос
Sub Макрос()
   
    Dim ФИО As String
   
   
    '1. Запись в переменную ФИО, которую надо проверить.
    ФИО = "А.С. Пушкин"
   
    '2. Проверка ФИО.
        ' Результат выводится в View - Immediate Window.
    Debug.Print ПроверитьФИО(ФИО)

End Sub

Private Function ПроверитьФИО(ФИО As String) As Boolean
   
    Dim RegExp_ As Object
   
    ' Создание объекта "RegExp".
    Set RegExp_ = CreateObject("VBScript.RegExp")
    ' Большие и маленькие буквы - это разные буквы.
    RegExp_.IgnoreCase = False
    ' Что искать.
    RegExp_.Pattern = "^[А-Я]\.[А-Я]\. ([А-Я][а-я]{1,}|[А-Я][а-я]{1,}-[А-Я][а-я]{1,})$"
    ' Поиск.
    ПроверитьФИО = RegExp_.Test(ФИО)
   
End Function
[свернуть]