
- •Тема: Создание и редактирование макросов в ms Word (4 часа)
- •Понятие “макрос”
- •Создание макроса макрорекодером
- •Объект Selection. Объект Range Объект Selection
- •Объект Range
- •Объекты Find и Replacement
- •Объекты Font и ParagraphFormat
- •Свойства объекта Font
- •Свойства объекта ParagrapfFormat
- •Объект PageSetup
- •Свойства объекта PageSetup
- •Работа с разделами, абзацами, предложениями, словами и отдельными символами документа
- •Порядок выполнения работы
- •Контрольные вопросы
Свойства объекта PageSetup
Свойство |
Описание |
Свойство |
Описание |
LeftMargin |
Размер левого поля |
Orientation |
Ориентация wdOrientPortrait – книжная wdOrientLandscape - альбомная |
RightMargin |
Размер правого поля |
PageWidth |
Ширина траницы |
TopMargin |
Размер верхнего поля |
PageHeight |
Высота страницы |
BottomMargin |
Размер нижнего поля |
Gutter |
Размер переплета |
Например
With ActiveDocument.PageSetup
.Orientation = wdOrientPortrait ‘ориетация листа - книжная
.TopMargin = CentimetersToPoints(2) ‘размер верхнего поля = 2 см
.BottomMargin = CentimetersToPoints(2.5) ‘размер нижнего поля = 2 см
.LeftMargin = CentimetersToPoints(0.5) ‘размер левого поля = 2 см
.RightMargin = CentimetersToPoints(1) ‘размер правого поля = 2 см
Работа с разделами, абзацами, предложениями, словами и отдельными символами документа
Программа MS Word, в сочетании с VBA, значительно расширяет возможности для работы с текстом или фрагментами текста. Для доступа к тем или иным фрагментам документа используют следующие объекты:
Sections (разделы)
Paragraphs (абзацы)
Sentences (предложения)
Words (слова)
Characters (символы)
Для доступа к свойствам указанных объектов используется объект Range
Например, во втором разделе текста во всех абзацах установить красную строку размером 3 см
With ActiveDocument.Sections(2).Range.Paragraphs
.FirstLineIndent = CentimetersToPoints(3#)
End With
Например, в третьем предложении, второго абзаца текста каждое второе слово выделить цветом.
Dim kword As Integer 'количество слов, в указанном предложении
kword = ActiveDocument.Paragraphs(2).Range.Sentences(3).Words.Count
For i = 2 To kword Step 2 'поиск указанных слов и их форматирование
With ActiveDocument.Paragraphs(2).Range.Sentences(3).Words(i).Font
.Color = wdColorBlue
End With
Next i
End Sub
Порядок выполнения работы
Пример 1. Создать макрос с именем “пример_1” доступный для текущего документа, который осуществляет поиск в документе слов “макрос” и форматирует их так: шрифт 20, полужирный курсив, синий.
Последовательность действий:
Скачать документ “макрос” в свою папку, а затем открыть его в MS Word. Cкачать
Установить курсор в начало документа
Вызвать диалог Сервис – Макрос – Начать запись. Ввести имя “пример_1”, доступен этот документ. ОК.
Выполнить команду Правка – Найти
В текстовой строке ввести слово “макрос”
Нажать кнопку Больше и установить флажок Только слово целиком
Нажать кнопку Найти далее
Закрыть окно поиска
Используя кнопки панели инструментов, установить размер шрифта – 20, начертание - полужирный курсив и цвет – синий.
Остановить запись макроса
Отменить форматирование текста, нажав Ctrl+Z несколько раз.
Открыть макрос для изменения. Сервис – Макрос – Макросы – из списка выбрать необходимый – нажать кнопку Изменить.
Программный код макроса показан ниже
Рассмотрим подробно каждую строку данного программного кода:
Selection.Find.ClearFormatting - удалить все параметры форматирования объекта Find
Далее оператором присоединения With…End With устанавливаются параметры поиска
Selection.Find.Text = “макрос” – найти текст “макрос”
Selection.Find.Replacement = “ ” – устанавливает текст для замены. Если пустая строка, то замена производиться не будет.
Selection.Find.Forward = True – направление поиска Вперед
Selection.Find.MathcWholeWord = True – искать только слово целиком
Selection.Find.Execute – выполнить поиск текста “макрос”, с установленными параметрами поиска. Найденный текст выделяется.
Далее устанавливаются параметры форматирования текста
Selection.Font.Size = 20 – размер шрифта
Selection.Font.bold = wdToggle – полужирное начертание
Selection.Font.Italic = wdToggle – курсивное начертание
Selection.Font.Color = wdColorBlue – цвет текста
Внесем изменения в макрос, так, чтобы он выполнял форматирование найденных слов сразу по всему документу. Для этого введем цикл While…Wend, который будет работать, пока будут находиться слова “макрос”
- Выполните макрос,
нажав кнопку
- Переключиться в окно документа и убедиться в форматировании текста.
- Сохранить документ, не забыв в процессе сохранения установить средний уровень защиты документа от макросов.
Индивидуальное задание 1. Создать макрос с именем “макрос_поиск” в новом документе “индивидуальное_задание1” доступный для текущего документа, который осуществляет поиск заданной последовательности символов и форматирует найденное, указанным в задании способом. Макрос должен запускаться при нажатии на соответствующую кнопку на панели инструментов. Иконка для кнопки - рисунок.
Вариант |
Задание |
1 |
Осуществить поиск русских букв “а” в тексте, и установки для них следующих параметров форматирования: размер шрифта – 25, начертание – полужирный, цвет – зеленый, регистр – все прописные |
2 |
Осуществить поиск цифр в тексте, и установки для них следующих параметров форматирования: размер шрифта – 20, начертание – курсив, видоизменение - тень |
3 |
Осуществить поиск в тексте двузначных чисел и установки для них следующих параметров форматирования: размер шрифта – 16, начертание – подчеркнутый, видоизменение – тень, цвет - желтый |
4 |
Осуществить поиск в тексте корней “лаг” или “лож” и выделения их синим цветом, полужирным начертанием и подчеркиванием |
5 |
Осуществить поиск в тексте восклицательных знаков и форматирования их следующим образом: размер – 14, тип шрифта – courier, начертание - полужирный |
6 |
Осуществить поиск в тексте словосочетаний “жи” или “ши” и выделения их зеленым цветом, начертанием полужирный курсив, тип шрифта – Arial, размер - 25 |
7 |
Осуществить поиск в тексте вопросительных знаков и форматирования их следующим образом: размер – 16, тип шрифта – courier, начертание – курсив, подчеркнутый |
8 |
Осуществить поиск латинских букв “а” в тексте, и установки для них следующих параметров форматирования: размер шрифта – 18, начертание – полужирный курсив, цвет – любой, регистр – все прописные |
9 |
Осуществить поиск в тексте приставок “при” или “пре” и выделения их зеленым цветом, полужирным курсивом, шрифтом типа – Arial, размером – 18, тенью и подчеркиванием |
10 |
Осуществить поиск в тексте словосочетаний “оро” или “оло” и выделения их бирюзовым цветом, полужирным курсивом, шрифтом типа – Georgia, размером – 20, c тенью |
11 |
Осуществить поиск четных цифр в тексте, и установки для них следующих параметров форматирования: размер шрифта – 10, начертание – курсив, видоизменение – утопленный, цвет - оранжевый |
12 |
Осуществить в тексте поиск аббревиатур VBA или VBE и установки для них следующих параметров форматирования: шрифт – Courier, размер – 21, курсив, цвет – коричневый, тень. |
13 |
Осуществить поиск нечетных цифр в тексте, и установки для них следующих параметров форматирования: размер шрифта – 12, начертание – полужирный курсив, видоизменение – тень, тип - BookmanOld |
14 |
Осуществить поиск согласных букв в тексте, и установки для них следующих параметров форматирования: размер шрифта – 20, начертание – курсив подчеркнутый, цвет - зеленый |
15 |
Осуществить поиск в тексте слов Range и Selection и установки для них следующих параметров форматирования: шрифт – Georgia, размер – 16, полужирный курсив, цвет – травяной. |
16 |
Осуществить поиск гласных букв в тексте, и установки для них следующих параметров форматирования: размер шрифта – 18, начертание – полужирный курсив, подчеркивание – одинарное, регистр – все прописные |
Примечание:
Для поиска в диалоге Правка – Найти буквы, цифры или спец. символа, необходимо выбирать соответствующий объект из списка, вызываемого кнопкой Специальный
Конструкция S=Selection.Characters.Parent осуществляет запись в строковую переменную S значения выделенного символа
Пример 2. В документе макрос создать макрос с именем “пример_2”, который регулирует левый отступ абзаца так, что каждый раз при выполнении макроса он увеличивается на 0,25 см от исходного значения. Макрос должен быть доступен для текущего документа.
Последовательность действий:
Установить курсор в начало документа
Вызвать диалог Сервис – Макрос – Начать запись. Ввести имя “пример_2”, доступен этот документ. ОК.
Выполнить команду Формат - Абзац
Установить отступ слева 0,25 см
Нажать кнопку ОК
Остановить запись макроса
Отменить форматирование текста, нажав Ctrl+Z .
Открыть макрос для изменения. Сервис – Макрос – Макросы – из списка выбрать необходимый – нажать кнопку Изменить.
Отредактируйте макрос, согласно образцу
Проверьте его работу
Индивидуальное задание 2. Создать макрос с именем “макрос_масштаб” в документе “индивидуальное_задание 2”, который осуществляет описанные ниже действия. Макрос должен запускаться при нажатии на соответствующую кнопку на панели инструментов. Иконка для кнопки - рисунок.
Вариант |
Задание |
1 |
Позволяет увеличивать масштаб документа от исходного значения на 5 % |
2 |
Позволяет уменьшать размер шрифта текста на 2 пункта от исходного значения |
3 |
Позволяет увеличивать левое поле документа на 0,1 см от исходного значения |
4 |
Позволяет уменьшать междустрочный интервал абзаца на 1 пункт от исходного значения |
5 |
Позволяет увеличивать интервал перед абзацем на 1 пункт от исходного значения |
6 |
Позволяет уменьшать отступ первой строки абзаца на 0,25 см |
7 |
Позволяет увеличивать межсимвольный интервал на 2 пункта от исходного значения |
8 |
Позволяет уменьшать правое поле страницы на 0,2 см от исходного значения |
9 |
Позволяет уменьшать масштаб документа от исходного значения на 3 % |
10 |
Позволяет увеличивать размер шрифта текста на 1 пункт от исходного значения |
11 |
Позволяет увеличивать нижнее поле документа на 0,2 см от исходного значения |
12 |
Позволяет увеличивать междустрочный интервал абзаца на 1 пункт от исходного значения |
13 |
Позволяет уменьшать интервал после абзаца на 1 пункт от исходного значения |
14 |
Позволяет увеличивать отступ первой строки абзаца на 0,25 см |
15 |
Позволяет уменьшать межсимвольный интервал на 1 пункт от исходного значения |
16 |
Позволяет уменьшать верхнее поле страницы на 0,1 см от исходного значения |
Пример 3. В документе макрос создать макрос с именем “пример_3”, который в каждом третьем предложении каждого нечетного абзаца текста устанавливает следующие параметры форматирования текста: шрифт – 15, курсив с тенью. Подсчитать количество отформатированных предложений. Макрос должен запускаться при нажатии на кнопку, внедренную в рабочий документ.
Последовательность действий:
Запустить редактор VBE
Создать новую процедуру, с именем пример_3, выполнив команду Insert - Procedure
Набрать программный код по образцу:
Public Sub пример_3()
Dim количество_абзацев As Integer
Dim количество_предложений_c_форматом As Integer
Dim i, j As Integer
'расчет количества абзацев текста
количество_абзацев = ActiveDocument.Paragraphs.Count
'расчет количества предложений в каждом нечетном абзаце
For i = 1 To количество_абзацев Step 2
For j = 3 To ActiveDocument.Paragraphs(i).Range.Sentences.Count Step 3
With ActiveDocument.Paragraphs(i).Range.Sentences(j).Font
.Size = 15
.Italic = True
.Shadow = True
End With
'Расчет количества отформатированных предложений
количество_предложений_c_форматом = количество_предложений_c_форматом + 1
Next j
Next i
MsgBox "количество отформатированных предложений " & количество_предложений_c_форматом
End Sub
Переключиться в окно MS Word
Загрузить тренировочный текст. Скачать
В конце документа внедрить кнопку. Для этого выполнить последовательность команд:
Вид – панели инструментов – Элементы управления
Установить курсор в место внедрения и выбрать кнопку на панели элементов, нажав на неё
Переключиться в
окно свойств кнопки, нажав
и настроить следующие свойства:
Caption - текст кнопки “Выполнить макрос”
BackColor – цвет фона Сиреневый
Font – параметры шрифта 8, полужирный курсив, Bookman Old Style
ForeColor – цвет шрифта Красный
Width – ширину кнопки, чтобы полностью была видна надпись
Дважды нажать кнопку
Записать программный код для вызова макроса. Должна получиться следующая процедура:
Private Sub CommandButton1_Click()
Call макрос_пример_3() ‘запуск макроса
End Sub
Закрыть VBE
Отключить режим конструктора на панели элементов
Нажать на кнопку
Проверить результаты работы макроса.
Индивидуальное задание 3. Создать макрос с любым именем в документе “индивидуальное_задание3”, который осуществляет описанные ниже действия. Макрос должен запускаться при нажатии на кнопку, внедренную на лист.
Вариант |
Задание |
1 |
Каждое первое слово в каждом предложении текста форматировать следующим образом: шрифт – 17, полужирный курсив, цвет, утопленный. Подсчитывает количество отформатированных элементов. |
2 |
Последнее предложение каждого абзаца форматирует следующим образом: шрифт – 22, курсив, Courier, тень. Подсчитывает количество отформатированных элементов. |
3 |
Первое слово каждого четвертого абзаца выделяет цветом и устанавливает следующие параметры шрифта: 16, Arial. Подсчитывает количество отформатированных элементов. |
4 |
В каждом втором предложении абзацев текста устанавливает следующие параметры форматирования: шрифт 18, курсив, цвет. Подсчитывает количество отформатированных элементов. |
5 |
Последнее слово каждого предложения текста выделяет так: 12, полужирный курсив, Georgia. Подсчитывает количество отформатированных элементов. |
6 |
В каждом последнем абзаце раздела устанавливает следующие параметры форматирования: выравнивание – по центру, интервал перед – 14 пт, шрифт – 16, курсив. Подсчитывает количество отформатированных элементов. |
7 |
В первом абзаце каждого четного раздела устанавливает следующие параметры форматирования текста: шрифт – 22, цвет, тень. Подсчитывает количество отформатированных элементов. |
8 |
Каждое третье слово каждого четного предложения абзаца форматирует так: 13, Courier, цвет, утопленный. Подсчитывает количество отформатированных элементов. |
9 |
Каждую первую букву слова, в каждом втором предложении абзаца делает прописной. Подсчитывает количество отформатированных элементов. |
10 |
Все слова каждого второго абзаца текста, длина которых кратна 5, форматирует так: 15, Times New Roman, контур, цвет. Подсчитывает количество отформатированных элементов. |
11 |
Все предложения текста, длиной 10 слов форматирует так: 17, подчеркнутый, курсив, тень, цвет. Подсчитывает количество отформатированных элементов. Подсчитывает количество отформатированных элементов. |
12 |
Каждое шестое слово текста, каждого нечетного раздела отформатировать так: 19, подчеркнутый, цвет, утопленный. Подсчитывает количество отформатированных элементов. |
13 |
Во всех разделах, с количеством абзацев большим 3, установить для каждого перdого слова предложения, следующие параметры форматирования: 13, Georgia, цвет, тень. Подсчитывает количество отформатированных элементов. |
14 |
Отформатировать абзац, содержащий самое длинное предложение следующим образом: выравнивание по правому краю; шрифт – 21, полужирный, цвет, тень. Вывести длину предложения (в словах). |
15 |
Все абзацы текста, состоящие из предложений, количество которых больше 4 отформатировать так: выравнивание текста – по ширине, ,красная строка – 1,5 см, автоматическая расстановка переносов; шрифт – 11, курсив, цвет. |
16 |
Каждое слово длиной более 9 символов, каждого первого предложения абзаца заменяет текстом “ДЕВЯТЬ” и форматирует так: 13, курсив, цвет, тень. Подсчитывает количество отформатированных элементов. |