Делаем макросы

Допустим нам требуется распечатать исходный текст некого документа, да не просто, а красиво. Например, хочется выделить в тексте документа текст в фигурных скобках курсивом.

Для документа, занимающего несколько страниц, вручную выделять все такие тексты - долго и утомительно. Так давайте напишем макрос!

Создание макроса

Итак, начнем: меню Сервис - Макрос - Начать запись.

Делаем доступным макрос для всех документов и приступаем к записи нажав кнопку ОК.

Производим переход в начало файла - жмем Cntrl + Home. Вызываем меню Найти и заменить, вводим текст для поиска "{" и жмем Найти. На первом найденном символе закрываем окно поиска. Далее, держа нажатой клавишу Shift, стрелками курсора выделяем текст внутри фигурных скобок включая символ "}". После этого делаем начертание выделенного текста курсивом.

Останавливаем запись макроса.

Теперь идем в редактор Microsoft Visual Basic (Сервис - Макрос - Редактор Visual Basic) и ищем там наш макрос. Он имеет следующий вид:

 
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 11.11.2007
'
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
    .Text = "{"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=14, Extend:=wdExtend
Selection.Font.Italic = wdToggle
End Sub

Удалив лишнее получим следующий текст макроса:

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 11.11.2007
'
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Text = "{"
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=14, Extend:=wdExtend
Selection.Font.Italic = wdToggle
End Sub

Теперь добавим цикл по символам для нахождения "}" и выделим необходимое число символов для форматирования в начертание курсивом:

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 11.11.2007
'
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Text = "{"
Selection.Find.Execute
i = 0
While Selection.Text <> "}"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    i = i + 1
Wend
Selection.MoveRight Unit:=wdCharacter, Count:=1
i = i + 1
Selection.MoveLeft Unit:=wdCharacter, Count:=i, Extend:=wdExtend
Selection.Font.Italic = True
Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub

Осталось добавить цикл по всему документу:

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 11.11.2007
'
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Text = "{"
While Selection.Find.Execute=True
    i = 0
    While Selection.Text <> "}"
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        i = i + 1
    Wend
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    i = i + 1
    Selection.MoveLeft Unit:=wdCharacter, Count:=i, Extend:=wdExtend
    Selection.Font.Italic = True
    Selection.MoveRight Unit:=wdCharacter, Count:=1
Wend
End Sub

На этом все. Макрос готов к работе.

Переименование макроса

  1. В меню Сервис выберите команду Шаблоны и надстройки.
  2. Нажмите кнопку Организатор.
  3. Откройте вкладку Макросы.
  4. Для документа или шаблона в поле В выберите макрос, который необходимо переименовать, и нажмите кнопку Переименовать.
  5. В диалоговом окне Переименование введите новое имя.
  6. Нажмите кнопку OK, а затем — кнопку Закрыть.

Удаление макроса

  1. Удаление отдельного макроса
    1. В меню Сервис выберите команду Макрос, а затем — команду Макросы.
    2. Выберите имя макроса, который требуется удалить, в списке Имя.
    3. Если нужного макроса нет в списке, выберите другой документ или шаблон в списке Макросы из.
    4. Нажмите кнопку Удалить.
  1. Удаление проектов макросов
    1. В меню Сервис выберите команду Макрос, а затем — команду Макросы.
    2. Нажмите кнопку Организатор.
    3. На вкладке Макросы выберите проект макроса, который требуется удалить из какого-либо списка, а затем нажмите кнопку Удалить.
    4. Проекты макросов, которые используются в активном документе, выводятся в списке слева, а проекты макросов в шаблоне Normal.dot — в списке справа.


Определения

Макрос

Действие или набор действий, используемые для автоматизации выполнения задач. Макросы записываются на языке программирования Visual Basic для приложений (VBA).

Шаблон

Файл или файлы, содержащие структуру и инструменты для создания таких элементов законченных файлов как стиль и макет страницы. Например, шаблоны Microsoft Word позволяют создавать отдельные документы, а шаблоны Microsoft FrontPage — целые веб-сайты.

Проект макроса

Совокупность компонентов, в том числе форм, текста программы и модулей классов, которые составляют макрос. Проекты макросов, созданные в редакторе Microsoft Visual Basic для приложений, можно включать в надстройки и большинство приложений Microsoft Office.

Шаблон Normal.dot

Универсальный шаблон для любых типов документов. Для изменения стандартного форматирования или содержимого документа в этот шаблон можно внести необходимые изменения.

Активный документ.

Документ, с которым в настоящий момент выполняется работа. Ввод текста и вставка рисунков в Microsoft Word осуществляются в активном документе. Область заголовка активного документа выделена цветом.