1

Тема: Заполнение документа с помощью UserForm

Доброе. Помогите реализовать задуманное а именно заставить работать UserForm. Есть текст в который нужно вставить из UserForm Фамилию, Имя, Отчество, дату рождения и т.д. Сложность заключается в чем? У меня так же есть выпадающий список с выбором пола, в некоторых местах ФИО должны склонять и пол естественно должен учитываться. Так же в UserForm сделал чекбокс при выборе которого фамилия или имя не должны склоняться. Для меня это сложновато прошу о помощи. Сам недавно начал изучать VBA если не затруднит пишите код с пояснениями. Подробнее в перекрепленном файле.

2

Re: Заполнение документа с помощью UserForm

Забыл файл

Post's attachments

Пример.docm 32.89 Кб, 9 скачиваний с 2018-04-17 

You don't have the permssions to download the attachments of this post.

3

Re: Заполнение документа с помощью UserForm

Довольно много писать + надо пересматривать фамилии и учесть месте, где они склоняются. Вам проще поискать готовые макросы на склонение ФИО.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

4

Re: Заполнение документа с помощью UserForm

Спасибо. Я и не ждал что мне дадут готовое решение))) Хотя бы почву для размышлений. Я только начал изучать VBA и мне бы понять от чего отталкиваться. Я не особо представляю как реализовать мои задумки. Могли бы вы мне хоть на элементарные вопросы дать ответы? Как лучше всего текст добавлять из UserForm в сам документ?
Начал я с того что в самом документе на первом листе создал "Элемент управления содержимым форматированного текста" их я создал много и текста в документе много сделал их закладками связал по всему тексте. Все работало за одним недостатком очень тормозило все распечатать текст практический не возможно ожидание было 5-10 мин. И я решил попробовать изучить VBA возможно через UserForm не будет так логать.

5

Re: Заполнение документа с помощью UserForm

Не совсем понял что это такое "Элемент управления содержимым форматированного текста".
Проще всего будет сделать закладки (Bookmark1, 2..., BookMarkDat1, 2 и т.д.). Делаем форму с полями ввода, добавляем кнопку и делаем на неё событие "При нажатии", в котором значение закладки будет равно значению ТекстБокса. Я бы сделал выбор падежа следующим образом:

Dim oBkMrk As Bookmark
For Each oBkMrk In ActiveDocument.Bookmarks
    If InStr(oBkMrk.Name, "Dat") >= 1 Then
    'здесь вставляем обработку функцией фамилии Dat - дательный падеж (или другой)
    Else
    'Оставляем как есть
    End If
Next oBkMrk

Функция должна изменять фамилии по флексии в зависимости от её значения в именительном падеже.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871