Со временем очень возможно собрать огромное количество документов. В какой-то момент вы можете захотеть внести такие же изменения в каждый из документов в коллекции. Например, вам может потребоваться изменить название компании в каждом документе. Очевидно, что вы можете открыть каждый документ, внести изменения и затем сохранить документ, но этот процесс может быстро утомить, если вам нужно обработать сотни или тысячи документов.
Что делать? В соответствии с мыслью, высказанной в других выпусках WordTips, каждый раз, когда у вас есть что-то обыденное и утомительное, вы можете часто использовать макрос, который сделает эту работу за вас. Например, вы можете написать макрос, который будет проходить по всем документам в каталоге, загружать каждый по очереди, искать и изменять необходимый текст и повторно сохранять документ. Этот процесс ничем не отличается от процесса, который вы выполняете вручную, за исключением того, что он выполняется под управлением макроса. Это делает его намного проще и быстрее.
Ниже приводится пример макроса, который может помочь:
Public Sub MassReplace () с Application.FileSearch. LookIn = "C: " 'где искать .SearchSubFolders = True' искать во вложенных папках .FileName = "* .doc" 'шаблон файла для соответствия' если совпадений более одного, выполнить следующий код Если .Execute ()> 0 Затем «чтобы отобразить, к скольким файлам будет обращаться этот макрос», раскомментируйте следующую строку кода «MsgBox« Found »& .FoundFiles.Count &« file (s) ». 'для каждого найденного файла запустите этот цикл For i = 1 To .FoundFiles.Count' откройте файл на основе его позиции в индексе Documents.Open FileName: =. FoundFiles (i) 'выполните поиск и замените название компании selection.Find. ClearFormatting selection.Find.Replacement.ClearFormatting With selection.Find .Text = "OldCompanyName" .MatchCase = True .Replacement.Text = "NewCompanyName" End With selection.Find.Execute Replace: = wdReplaceAll 'заменить уличный адрес на selection.Find. Text = "OldStreetAddress" .Replacement.Text = "NewStreetAddress" Конец с selection.Find.Execute Replace: = wdReplaceAll 'заменить город, штат и почтовый индекс на selection.Find .Text = "OldCityStateAndZip" .Replacement.Text = " NewCityStateAndZip «Конец с выделением.Find.Execute Replace: = wdReplaceAll» сохранить и закрыть текущий документ ActiveDocument.Close wdSaveChanges Next i Else », если система не может найти никаких файлов» с расширением .doc MsgBox «Файлы не найдены». End If End WithEnd Sub
Этот макрос довольно мощный и позволяет вам не только изменить название компании, но и адрес вашей компании. Все, что вам нужно сделать, это внести изменения, чтобы указать, какой каталог и диск использовать при поиске, а также какова старая и новая информация о компании..
Если работа с макросами выходит за рамки того, чем вы хотите заниматься, существует также ряд различных коммерческих продуктов, которые будут работать с документами Word. Различные подписчики предлагали следующие программы:
- WordFisher (http://www.wordfisher.com/wf4.htm)
- Word Search и Заменить (http://www.funduc.com/word_sr.htm)
- InfoRapid Search & Replace (http://www.inforapid.com/html/searchreplace.htm)
- MegaReplacer (http://www.editorium.com/14843.htm)