Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.99 Mб
Скачать

2.21. Введение в Visual Basic For Application. Создание макросов в Microsoft Word и их последующее редактирование

Как работают Windows-программы. Если под Windows'ом запускается программа, на экране открывается ее окно. Окна разных программ, конечно же, тоже различны, например различны по размеру, имеют различные формы, и на них видны различные вещи. Особенности, которые касаются самих окон, такие как размер, цвет, заголовки и так далее называют свойствами окна. А вещи, которые видны на окне, в основном тексты, картинки, иконки, называют объектами. Каждый из этих объектов тоже имеет такие же свойства, как длина, ширина, цвет и так далее.

Все объекты объединяются в классы. Класс является обобщением понятия типа данных и задает свойства и поведение объектов класса. Класс – это объединение данных и обрабатывающих их процедур и функций. Данные называются также переменными класса, а процедуры и функции – методами класса. Переменные определяют свойства объекта, значения переменных– состояние объекта. Методы определяют поведение объекта. Еще одно понятие, связанное с объектом – событие. События возникают при работе с объектом, чаще всего при определенных действиях пользователя, иногда, как результат действия системы.

Если программа была запущена, и ее окно было открыто, программа спокойно ждет, пока что-нибудь не произойдет, что, к примеру, будут нажаты кнопки, активировано меню и так далее. Когда это происходит, это называют событием. Для каждого события, которое только интересует нашу программу, программисты написали в языках программирования, таких как VBA, отдельные «кусочки» кодов, которые будут вызваны каждый раз, если событие «происходит» (событие процедуры). Процедуры - это процессы, которые, стоят за нашими кнопками и меню и всегда одинаковы. Процедуры -это шаг за шагом исполняемые компьютером указания. Компьютер не может ничего другого, как слепо следовать простым командам – однако делает он это очень быстро.

Цель занятия – обучение созданию макроса из нескольких стандартных операций, что позволит автоматизировать процесс редактирования и особенно ценно при наличии большого количества однотипных действий.

Макрос – последовательность команд и действий пользователя, записанная под уникальным именем, которая может быть выполнена приложением.

Небольшое напоминание перед выполнением первого задания. Некоторые правила набора текстов:

  • Отсутствие двойных пробелов

  • Пробел ставится после знака препинания: диван, чемодан, саквояж.

  • Пробел ставится с внешней стороны скобок (исключение, наличие знака препинания): картину (корзину), картонку.

Задача 1. Пусть имеется текст, набранный с нарушением указанных выше правил. Требуется написать макрос, который исправит ошибки.

Порядок записи макроса.

  1. Выберите команду «Сервис / Макрос / Начать запись…».

  2. Задайте имя макроса, комбинацию клавиш (не рекомендуется назначать стандартные комбинации Ctrl, Сtrl+V и так далее) или кнопку на панели, если это требуется.

  3. Процесс начался, когда появилось меню:

где – закончить запись, – пауза.

  1. Выполните последовательность действий, которые будут записаны в макрос. При необходимости задавайте паузы( ).

  2. Нажмите – закончить запись.

Пример. Создайте макрос, заменяющий двойные пробелы на одинарные.

  1. Начните запись макроса.

  2. Назначьте: имя «Maкрос1», клавиша Сtrl+1.

  3. Выберите «Правка / Заменить…», укажите требуемую замену и дайте команду «Заменить все».

  4. Закончите запись.

Применение макроса. Откройте документ, содержащий ошибки, «exchem.doс» нажмите на Ctrl+1 и наблюдайте за тем, что получилось.

Просмотр кода макроса. «Сервис / Макрос / Макросы…» Выбираем «Mac1. отладка». В результате видим что-то похожее на:

Это Ваша первая программа на VBA. Разберем ее построчно:

Sub Макрос1() – начало процедуры

Selection.Find.ClearFormatting – отменяет все выделения, которые были до этого

Selection.Find.Replacement.ClearFormatting  работаем с объектом Find

With Selection.Find

.Text = " "

.Replacement.Text = " "

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

bRepl = Selection.Find.Execute(Replace:=wdReplaceAll)

End Sub

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

После изменения кода, не забудьте сохраниться.

Использование циклов. Так как пробелы могут встречаться и тройные, и n-ые, то логично выполнить замену пробелов до тех пор, пока нечего будет заменять. Для этой цели воспользуйтесь циклом «while».

Для написания программы требуется знать:

  1. Формат цикла «while».

  2. Значение, возвращаемое методом «Selection.Find.Execute».

Найдите нужную информацию в справке. Наиболее простой способ: в любом месте редактора VBA набираем «while», ставим курсор на набранное слово «while» и нажимаем клавишу F1. Иногда проще сразу смотреть пример применения, а не читать страницы справки. Теперь листинг нашей программы будет выглядеть примерно так: