Использование макросов при редактировании текста

При редактировании документов может возникнуть множество нестандартных ситуаций, для выхода из которых каждый раз необходимо подыскивать собственное уникальное решение, что и привело к мысли об использовании макрокоманд при обработке документа. При этом предусмотреть все варианты заранее невозможно. Использование макрокоманд позволяет самому находить такие нестандартные решения и оптимизировать их для выполнения своей задачи.

Макросы могут существенно облегчить работу с документами, поэтому навыки их создания могут быть полезны любому пользователю 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.

Версия для печатиВерсия для печати

Номер: 

29 за 1998 год

Рубрика: 

На заметку
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!