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

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

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 — самая популярная программа для обработки текстов в мире.) Этот совет (195) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

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