Пользовательская функция (UDF) для перевода ФИО (фамилии, имя, отчества) в родительный падеж.
Новые версии функций (изменения от 2019 года) доступны в надстройке FIO + Propis
Эту функцию можно использовать как в коде программы, так и как формулу в ячейках листа Excel
(см. пример в прикреплённом файле)
PS: Функция является переделкой аналогичной UDF для склонения в дательном падеже.
Тестировал склонение на списке разнообразных ФИО (см. первый столбец в прикреплённом файле), и заведомо корректных результатах склонения (третий столбец)
Конечно, код не идеальный, - всегда можно найти ФИО, которые будут склоняться неверно.
Но, в целом, удалось добиться весьма неплохого результата (по сравнению с прежней версией кода, и другими аналогичными функциями)
Если вы используете функции склонения для формирования документов,
обратите внимание на специализированную надстройку FillDocuments,
которая позволит вам одним нажатием кнопки создать документы Word и Excel по шаблонам, а также выполнить рассылку писем.
В указанную надстройку включены самые последние версии функций склонения.
Пример использования:
Sub ПереводФИОвРодительныйПадеж() ' если фамилия, имя и отчество - в одной переменной (или ячейке) FIO$ = "Сидоров Иван Скотиныч" РодительныйПадеж$ = GenitiveCase(FIO$) Debug.Print РодительныйПадеж$ ' результат: Сидорова Ивана Скотиныча ' если фамилия, имя и отчество - в разных переменных (или ячейках) НетКого$ = GenitiveCase("Андреева", "Ольга", "Федоровна") Debug.Print НетКого$ ' результат: Андреевой Ольги Федоровны End Sub
Код функции GenitiveCase (версия от 29 января 2013 года):