.Forward = True
.Wrap = wdFindAsk
Назад, с согласием на продолжение поиска ∙
.Forward = False
.Wrap = wdFindAsk
Вперед, без согласия на продолжение поиска ∙
.Forward = True
.Wrap = wdFindAsk
Назад, без согласия на продолжение поиска ∙
.Forward = False
.Wrap = wdFindAsk
Везде ∙
.Forward = True
.Wrap = wdFindContinue
Видно, что наличие или отсутствие согласия на продолжение поиска не влияет на записываемый текст. А как же тогда отказаться от запроса на продолжение? Откроем текст макроса и поставим после команды".Wrap" еще один знак "=" (рис. 3.7).
Рис. 3.7.
Ну вот, все и ясно — для отказа от продолжения замены после достижения конца документа нужно поставить значение параметра".Wrap" как "wdFindStop". То есть вышеприведенная таблица должна иметь вид
Параметры поиска ∙ Необходимый фрагмент кода
Вперед, с согласием на продолжение поиска
.Forward = True
.Wrap = wdFindAsk
Назад, с согласием на продолжение поиска
.Forward = False
.Wrap = wdFindAsk
Вперед, без согласия на продолжение поиска
.Forward = True
.Wrap = wdFindStop
Назад, без согласия на продолжение поиска
.Forward = False
.Wrap = wdFindStop
Везде
.Forward = True
.Wrap = wdFindContinue
Осталось разобраться со строчкой".Execute Replace:= wdReplaceAll". По логике вещей, это должна быть команда запуска поиска, тем более что и слово "Execute" означает "Запустить". Посмотрим в справке — по слову "Execute". Так, четыре ссылки: "For information about the Execute method, click one of the following object names: Dialog, Find, KeyBinding, MailMerge". Нас интересует вторая — "Find", так как мы работаем именно с этим объектом. Открываем.
Так и есть — команда".Execute" запускает команду поиска и замены на выполнение: "Runs the specified find operation. Returns True if the find operation is successful.". Из текста справки также узнаем, что все параметры поиска и замены можно было бы задать и в скобках, а, кроме того, результат выполнения команды можно записать в переменную — успешен ли был поиск или нет(то есть были ли найдены в данном сеансе работы команды "Найти и заменить" искомые элементы). Сейчас данная возможность не требуется, однако запомнить ее стоит — мало ли когда пригодится.
Продолжаем изучать записанную макрокоманду.
ActiveDocument.Save
Вопросов не вызывает — это команда сохранения активного документа.
ActiveDocument.SaveAs FileName:="Доклад1.rtf", FileFormat:=wdFormatRTF, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= False
А вот здесь уже понадобится редактирование. Это команда "Сохранить Как…" — поскольку соответствующая команда Word представляет собой диалоговое окно, то в текст макроса помещаются все возможные параметры, как соответствующие установленным по умолчанию, так и нет: "AddToRecentFiles" — добавлять ли ярлык в папку "Recent", "EmbedTrueTypeFonts" — внедрять ли шрифты TrueType. Наиболее интересны элементы "FileName:="Доклад1.rtf"" и "FileFormat:=wdFormatRTF" имя файла, под которым сохраняется активный документ, и тип сохраняемого файла. Тип нас устраивает — формат Rtf. А вот как быть с именем? Ведь у каждого файла должно быть свое, уникальное имя. Попробуем для начала просто исключить строчку с указанием имени из текста данной команды. Создадим еще один модуль, скопируем туда всю команду "ActiveDocument.SaveAs" со всеми параметрами и удалим строчку "FileName: ="Доклад1. rtf"". Запустим программу… ничего не произошло. Но ведь программа что-то делала: и жесткий диск работал, и система была недоступна пару секунд, и сообщений об ошибках не было… Что же все же сработало? А откроем-ка в "Блокноте" или другом редакторе простого текста файл, который сохранялся — у меня это был файл "Доклад2.doc", предварительно выгрузив его из Word (рис. 3.8).
Рис. 3.8
.Так вот в чем дело — файл был сохранен в формате Rtf, но под прежним именем и с расширением".doc"! Но нас это не устраивает — имя пусть будет то же, а вот расширение должно быть именно".rtf".