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

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

Лабораторная работа №6. Тема: Редактирование макросов в Visual Basic for Application в Word

Visual Basic for Application в Word

Применяя Visual Basic for Application в Microsoft Word, можно создавать сложные виды документов, в которых используется и текст, и таблицы, и графические изображения, и автофигуры. Для каждого из этих компонентов предусмотрен отдельный объект, ряд свойств и методов, посредством которых можно выполнять такие же действия, что и в интерактивном режиме. Например, изменять толщину линии или придавать объем графическому объекту, увеличивать или уменьшать размер текста и многое другое.

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

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

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

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

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

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

Теперь идем в редактор Microsoft Visual Basic (Вид - Макрос – (Изменить или Alt+F11) Редактор 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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: