Когда вы используете функцию слияния в Word, у вас есть возможность напрямую распечатать результаты или создать новый документ. Если вы выберете последний вариант, итоговый документ будет содержать всю информацию, которая обычно поступала бы на принтер. Например, если ваш документ слияния представляет собой двухстраничную букву, каждая буква в итоговом документе отделяется разрывом раздела. Таким образом, если вы объединяете двухстраничное письмо со 150 разными адресами, то вы получите 300-страничный документ со 150 разрывами разделов (по одному на каждые две страницы).

Для некоторых людей было бы более полезно, если бы вы могли объединить отдельные файлы. Например, в приведенном выше примере вам может понадобиться 150 отдельных файлов документов, каждый по две страницы. К сожалению, это не одна из возможностей, доступных при использовании функции слияния почты Word. Единственный ответ на выполнение этой задачи — создать макрос, который на основе объединенного документа (упомянутого выше 300-страничного) будет брать каждый раздел и сохранять его в свой собственный файл документа.

Если вы заглянете в базу знаний Microsoft, то обнаружите, что есть старая статья, посвященная именно этой проблеме:

http://support.microsoft.com/kb/216201

Макрос, представленный в статье, даже если он был написан для более старой версии Word, будет отлично работать в более поздних версиях. Это позволяет разделить объединенный документ на отдельные файлы на основе разрывов разделов:

Sub BreakOnSection()

'Used to set criteria for moving through the document by section.

Application.Browser.Target = wdBrowseSection

'A mailmerge document ends with a section break next page.

'Subtracting one from the section count stop error message.

For i = 1 To ((ActiveDocument.Sections.Count) - 1)



'Select and copy the section text to the clipboard         ActiveDocument.Bookmarks("\Section").Range.Copy

'Create a new document to paste text from clipboard.

Documents.Add         Selection.Paste

'Removes the break that is copied at the end of the section, if any.

Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend         Selection.Delete Unit:=wdCharacter, Count:=1

ChangeFileOpenDirectory "C:\"

DocNum = DocNum + 1         ActiveDocument.SaveAs FileName:="test_" & DocNum & ".doc"

ActiveDocument.Close         'Move the selection to the next section in the document         Application.Browser.Next     Next i     ActiveDocument.Close savechanges:=wdDoNotSaveChanges End Sub

Однако важно понимать, что этот макрос будет работать только в том случае, если единственное место, где происходят разрывы разделов, — это между объединенными документами. Если исходный документ содержит разрывы разделов, макрос не даст удовлетворительных результатов. Дополнительные сведения об использовании макроса см. В статье базы знаний по указанной выше ссылке.

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

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

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

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

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

link: / wordribbon-Merging_to_Individual_Files [Слияние с отдельными файлами].