У меня есть документ Word, который используется в качестве исходного документа для слияния. Я могу редактировать документ, но не данные, используемые для слияния. Мне нужно преобразовать некоторые данные в источнике данных (в частности, мне нужно взять числа (например, 342) и добавить их значение в словах (например, «триста сорок два (342)»)). Я могу написать функцию VBA, чтобы выполнить преобразование, но я не уверен, как лучше всего получить данные для этой функции.
Есть ли способ связать макрос с конкретными точками в документе и позволить объединению управлять процессом преобразования? (Я думаю о том, как вы можете использовать формулы в полях Word; у меня уже есть несколько вещей вида { IF { MERGEFIELD foo } > 75 { MERGEFIELD foo } { = { MERGEFIELD foo } * 20 } }
в документе. Если бы я мог что-то добавить, я мог бы пойти { FUNCTION WordNum { MERGEFIELD number } }
, это было бы идеально.)
С другой стороны, я думаю, что могу использовать VBA, чтобы рыться в источнике данных слияния (в частности, document.MailMerge.DataSource
) и переписывать поля. Если я пойду по этому пути, где я должен выполнить макрос, чтобы он попадал в данные после того, как они были прочитаны из источника данных, но до того, как они были объединены с документом?