Сохранение персонализированных копий документа (Microsoft Word)
Когда вы работаете с другими людьми в своей компании или, возможно, с группой клиентов, вы можете захотеть создать индивидуальный файл для каждого клиента. Хотя, возможно, лучше всего выполнить создание с помощью слияния писем, если ваши потребности в персонализации скромны, есть более простой способ.
Начните с создания обычного текстового файла, содержащего имена лиц, которые должны получить ваш документ, по одному имени в строке. Затем макрос вставит имя в заголовок документа и сохранит документ под именем этого человека. Таким образом, если ваш текстовый файл содержит пятнадцать человек, вы получите пятнадцать копий документа, по одной на человека. Каждый будет персонализирован с именем человека в заголовке.
Процесс выполнения такой задачи довольно прост: откройте текстовый файл, выберите имя, поместите его в заголовок и затем сохраните документ. Захватывается другое имя, и процесс повторяется до тех пор, пока в файле не кончатся имена. Следующий макрос реализует такой процесс:
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 [Сохранение персонализированных копий документа]
.