Когда вы работаете с другими людьми в своей компании или, возможно, с группой клиентов, вы можете захотеть создать индивидуальный файл для каждого клиента. Хотя, возможно, лучше всего выполнить создание с помощью слияния писем, если ваши потребности в персонализации скромны, есть более простой способ.

Начните с создания обычного текстового файла, содержащего имена лиц, которые должны получить ваш документ, по одному имени в строке. Затем макрос вставит имя в заголовок документа и сохранит документ под именем этого человека. Таким образом, если ваш текстовый файл содержит пятнадцать человек, вы получите пятнадцать копий документа, по одной на человека. Каждый будет персонализирован с именем человека в заголовке.

Процесс выполнения такой задачи довольно прост: откройте текстовый файл, выберите имя, поместите его в заголовок и затем сохраните документ. Захватывается другое имя, и процесс повторяется до тех пор, пока в файле не кончатся имена. Следующий макрос реализует такой процесс:

Sub SaveNameFiles()

Dim sName As String     Dim sFile As String

Open "c:/names.txt" For Input As #5

On Error Resume Next     Do While Not EOF(5)

' get the name         Line Input #5, sName         sFile = sName & ".doc"

sFile = "c:\mypath\" & sFile

ActiveWindow.ActivePane.View.SeekView = _           wdSeekCurrentPageHeader         Selection.WholeStory         Selection.Delete         Selection.TypeText Text:=sName

ActiveWindow.ActivePane.View.SeekView = _           wdSeekMainDocument         ActiveDocument.SaveAs FileName:=sFile     Loop

Close #5

ActiveWindow.ActivePane.View.SeekView = _       wdSeekCurrentPageHeader     Selection.WholeStory     Selection.Delete     ActiveWindow.ActivePane.View.SeekView = _       wdSeekMainDocument End Sub

Сложная часть макроса заключается в использовании свойства .SeekView, чтобы указать, с какой историей в документе вы хотите работать. Как здесь реализовано, свойство .SeekView многократно используется для переключения между областью заголовка и основным документом.

Также обратите внимание, что переменная sFile указывает имя файла, в котором будет сохранен персонализированный документ. Сразу после получения имени из текстового файла создается переменная sFile путем добавления расширения файла .doc и пути в начало имени файла. (Вы должны изменить путь на тот, который подходит для вашей системы.)

Фактическая операция сохранения относительно проста; метод .SaveAs используется с именем файла. Это наиболее подверженная ошибкам строка кода в макросе, поскольку одно из имен, считываемых из файла, может включать символы, которые не подходят для правильных имен файлов. В этом случае генерируется ошибка, и макрос продолжается со следующей строки. Однако документ не будет сохранен под неправильным именем.

После завершения цикла (получение имен и сохранение) область заголовка очищается и .SeekView переключается обратно на основной документ.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (7983) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:

link: / word-Saving_Personalized_Copies_of_a_Document [Сохранение персонализированных копий документа].