При редактировании документов может возникнуть множество нестандартных ситуаций, для выхода из которых каждый раз необходимо подыскивать собственное уникальное решение, что и привело к мысли об использовании макрокоманд при обработке документа. При этом предусмотреть все варианты заранее невозможно. Использование макрокоманд позволяет самому находить такие нестандартные решения и оптимизировать их для выполнения своей задачи.
Макросы могут существенно облегчить работу с документами, поэтому навыки их создания могут быть полезны любому пользователю MS OFFICE.
Как известно, в текстовых процессорах MS WORD, начиная с версии 6.0, могут использоваться макросы, выполняющие различные операции над текстом. Макрос - это последовательность интерпретируемых инструкций, которые выполняются при обработке документа в MS OFFICE, например, при форматировании. В редакторе WORD 97 макросы можно создавать путем записи действий, выполняемых пользователем при редактировании, либо путем создания программы на языке VBA (Visual Basic for Applications).
Что же касается использования макросов, созданных в предыдущих версиях WORD 6.0 и 7.0 на языке WordBasic, то WORD 97 автоматически преобразует такие макросы к принятой в Visual Basic форме записи. Для этого необходимо открыть в WORD 97 шаблон, содержащий эти макросы (после чего они будут преобразованы), и скопировать их с помощью организатора в шаблон WORD 97, в котором они и будут использоваться далее. Если сохранить преобразованные макросы в исходном шаблоне, то он станет пригодным только для использования в WORD 97.
В MS WORD макросы хранятся в документе, который они обрабатывают, либо в шаблоне, на основе которого создан документ. Большинство документов создается на основе шаблона NORMAL. DOT, следовательно, макросы, находящиеся в нем, доступны при редактировании этих документов.
В общем случае для запуска макроса необходимо войти в меню Сервис|Макрос|Макросы. В открывшемся окне можно установить местонахождение макроса (документ или шаблон) и выполнять необходимые действия с ним - отладку, редактирование, запуск, удаление.
С помощью макросов обычно выполняются монотонные действия, которые трудно выполнить вручную. Одним из таких примеров является расстановка в тексте недостающих пробелов. Часто случается так, что после слова идет запятая, а после запятой сразу же идет следующее слово. В данном случае WORD считает, что в этом месте допущена ошибка, и подчеркивает оба слова. Чтобы разрешить этот вопрос, необходимо вставить после запятой пробел. Нередко это случается при импорте документа в WORD из форматов DOS text или Windows text. При большом размере документа эту операцию можно выполнить с помощью следующего макроса:
Sub insert() ' ' insert Макрос ' Макрос создан 13.05.98 No name ' Dim n As Byte Dim c1, c2, c3 As Characters ActiveDocument.Bookmarks("\startOfDoc").Select Do c1 = Selection.Text n = Selection.Move(unit:= wdCharacter, Count:=1) c2 = Selection.Text If c1 = ", " And c2 <> " " Then Selection.InsertBefore " " Loop Until WordBasic. CmpBookmarks("\sel", "\EndOfDoc") = 0 End Sub
В данном макросе осуществляется последовательный перебор символов текста и нахождение позиций, где сразу после запятой начинается следующее слово. Если такая позиция найдена, то после запятой вставляется пробел.
Другой случай, в котором возможно применение макросов - это перемещение курсора в точку окончания редактирования. Особенно это удобно при наборе большого документа в несколько сеансов.
Здесь используются макросы AUTOOPEN и AUTOCLOSE, выполняющиеся автоматически при открытии и закрытии документа. Их следует хранить в обрабатываемом документе.
Sub autoopen() ' ' autoopen Макрос ' Макрос создан 02.05.98 No name ' Dim n As Byte n = MsgBox("Перейти в точку окончания редактирования?", 4, "AutoOpen") If n = 6 Then ActiveDocument.Bookmarks("temp").Select End Sub Sub autoclose() ' ' autoclose Макрос ' Макрос создан 02.05.98 No name ' ActiveDocument.Bookmarks.Add("temp") End Sub
В макросе AUTOCLOSE определяется пользовательская закладка "TEMP", которая указывает на текущую в момент закрытия документа точку. При открытии документа макрос AUTOOPEN выводит запрос на разрешение перехода в эту точку. Если пользователь отвечает положительно (нажимает кнопку "yes", функция MSGBOX возвращает значение 6 (константа VbYes)), то такой переход происходит.
Для создания макроса необходимо войти в пункт меню Сервис|Макрос|Макросы. Затем нужно установить, где будет храниться создаваемый макрос - в документе или в шаблоне. Далее при нажатии кнопки "создать" происходит запуск среды Visual Basic и открывается окно, в котором следует вводить текст макроса. В нем уже присутствуют заголовок макроса и команда его окончания. Далее можно выполнять запуск и отладку макроса с помощью соответствующих пунктов меню. Сохранить изменения в макросе можно, сохранив документ или шаблон, в котором он находится.
Юрий ЛЕВИН
В последнее время появилось
множество макросов-вирусов.
Макровирусы состоят из одного или
нескольких макросов, часто
зашифрованных и выполняющих
различные нежелательные действия.
Эти макросы содержат команды,
обеспечивающие перенос вируса в
другие документы и шаблоны, а также
порчу данных на компьютере. Обычно
вирусы внедряются в макросы,
выполняющиеся автоматически при
открытии и закрытии документа.
Заражая компьютер, вирус для WORD
стремится внедриться в шаблон
NORMAL.DOT. Так как макросы используются
также в других приложениях MS OFFICE,
например, в EXСEL, то существуют
вирусы, способные заражать и их
документы или даже несколько типов
документов одновременно. Многие
макровирусы проявляют себя тем, что
блокируют пункт меню Сервис|Макрос
при заражении компьютера. В случае
заражения вирусом следует
использовать специальные
антивирусные программы.
Для защиты от вирусов в MS OFFICE предусмотрен ряд возможностей. Одна из них - это предупреждение при открытии документа с макросами. Пользователю предлагается отключить макросы, содержащиеся в документе, чтобы не допустить возможного запуска вируса. Если же заражение уже произошло, для удаления вируса необходимо использовать антивирусное програмное обеспечение.
Можно дать несколько советов на тот случай, если заражение компьютера все-таки произошло, а времени или возможности проверить файлы WORD'а с помощью антивирусных программ нет.
Чтобы удалить вирус из NORMAL.DOT, необходимо удалить этот файл и загрузить в WORD документ, не содержащий макросов. При этом будет создан новый NORMAL.DOT со стандартными параметрами конфигурации. При этом следует учесть, что если на момент удаления в нем содержались полезные макросы или нестандартные параметры конфигурации, то они будут утрачены. Обычно NORMAL.DOT находится в С:\...\Microsoft Office\.
Если необходимо обезвредить документ, его можно открыть в WORDPAD'е (при этом наличие макросов будет проигнорировано), а затем скопировать весь его текст в WORD через clipboard и сохранить. Могу порадовать тех, кто уже перешел на WIN98 - тамошний WORDPAD может работать с файлами WORD 97.
Горячие темы