Опубликован: 04.07.2006 | Доступ: свободный | Студентов: 5468 / 628 | Оценка: 4.11 / 3.96 | Длительность: 11:08:00
Лекция 5:

Макросы. Дальнейшая информация об объектах

Аннотация: В этих версиях Visual Basic отсутствует возможность работы с макросами, в данном учебном пособии с этой целью используется VBA. Во второй части лекции даётся дальнейшая информация об объектах Visual Basic, их свойствах, событиях, методах.

Макросы (макрокоманды) - это программы, позволяющие автоматизировать решение часто встречающихся задач.

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

VBA (Visual Basic for Application) - Visual Basic для приложений встроен в приложения Microsoft Office; программист имеет возможность работать как с объектами текущего, так и с объектами других приложений. Приложение предоставляет свои функции в виде объектов, работа с которыми обеспечивается средствами VBA. Здесь рассматриваются элементы работы с макросами.

Рассматриваются следующие этапы создания макроса:

  • проектирование (определение последовательности действий), задание имени макрокоманды,
  • запись макрокоманды. Макрос может быть создан путeм: протоколирования действий пользователя в режиме записи макроса (запись) или программирования,
  • тестирование,
  • задание сочетания клавиш для вызова макрокоманды,
  • макрокоманде можно поставить в соответствие кнопку панели инструментов или команду меню.

Протоколирование последовательности действий пользователя в режиме записи макроса (запись)

Процесс записи макрокоманды рассматривается на примере создания макроса, подчеркивающего в тексте слова из латинских букв.

Практическая работа 32
32a. Протоколирование действий пользователя в режиме записи макроса
  • Ввести текст в приложении Word, содержащий русские слова и слова, написанные латинскими буквами, затем выполнить команду: меню Сервис \to Макрос \to Начать запись,
  • в выведенном диалоговом окне Запись макроса ввести имя макрокоманды (здесь макрос34), в поле Описание можно ввести краткое описание макрокоманды (Подчеркнуть слова из латинских букв), в поле Макрос доступен для: ввести - Всех документов (Обычный doc),
  • далее сделать щелчок на кнопке ОК. Выводится следующее диалоговое окно, где можно определить вид старта макрокоманды:
    • щелчком на соответствующей кнопке панели инструментов,
    • выбором команды из меню,
    • использованием комбинации клавиш.
  • c использованием клавиатуры подвести курсор к слову введeнного текста, написанному латинскими буквами. С использованием клавиш Shift + a маркировать слово и с использованием соответствующей кнопки панели инструментов подчeркнуть слова,
  • использовать автоматически выведенную кнопку (вверху слева на экране): Остановить запись,
  • сохранить макрос: файл \to сохранить как \to Шаблон документа,
  • открыть файл, содержащий слова, написанные латинским шрифтом, поставить курсор перед словом из латинских букв. Далее нужно применить макрос: меню Сервис \to Макрос \to Макросы : \to Выбрать макрос 34 a щелчок на кнопке Выполнить; слово текста подчeркивается.

Макрокоманда обрабатывает текст, находящийся между курсором и концом документа. Ниже приведeн текст созданного протоколированием макроса. Он создан (здесь) копированием сгенерированного в результате процедуры протоколирования макроса:

Sub Макрос34 () ' Подчеркнуть слова из латинских букв 
Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
If Selection.Font.Underline = wdUnderlineNone Then
Selection.Font.Underline = wdUnderlineSingle
Else
Selection.Font.Underline = wdUnderlineNone
End If
End Sub
Программирование макроса

Рассматривается пример создания макрокоманды, обеспечивающей подчеркивание слов из латинских букв. Последовательность действий: меню Сервис \to Макрос \to ввести имя Макроса \to ввести тип шаблона \to в поле Описания ввести комментарий \to назначение макроса \to сделать щелчок на кнопке Создать \to ввести текст макроса \to сохранить.

32в. Программирование макроса
  • Ввести код, данный ниже (пояснения даны под комментариями),
  • подвести курсор к слову текста в приложении Word, написанному латинскими буквами,
  • использовать команду меню Сервис \to Макрос \to Макросы \to маркировать в cписке требуемый макрос \to Выполнить.

Описание некоторых используемых функций дано после кода макроса.

Sub macrosm() ' программирование макроса
Dim sw$ ' описание проверяемого слова текста
Dim fc$ ' описание первой буквы проверяемого слова
' текст: подчеркнуть слова из латинских букв"
r = MsgBox("lateinische Woerter" + Chr$(13) + "unterstreichen", 1) 

If r Then
' сравнение закладок 

While WordBasic.CmpBookmarks("\StartOfSel", "\EndOfDoc") <> 0 
WordBasic.SelectCurWord ' выделить текущее слово
' возвратить строку - выделенный фрагмент текста
sw$ = WordBasic.Selection$()
fc$ = WordBasic.Mid$(sw$, 2, 1) ' возвратить символ

If fc$ >= "A" And fc$ <= "z" Then 
' подчеркнуть, если буквы лежат в заданном диапазоне
WordBasic.Underline (-1) 
WordBasic.WordRight ' продвинуться дальше
End If

Wend
End If
End Sub

Ниже приведeн список некоторых функций.

  • CmpBookmarks(Закладка1$, Закладка2$) сравнивает положение двух закладок в документе. Возвращает значение, определяющее взаимное расположение сравниваемых закладок (табл. 5.1).
    Таблица 5.1. Значения, определяющие взаимное расположение закладок
    Значение Положение закладок
    0 Положения совпадают
    1 Закладка 1 ниже закладки 2
    2 Закладка 1 выше закладки 2
    3 Закладка 1 ниже и пересекается с закладкой 2
    4 Закладка 1 выше и пересекается с закладкой 2
    5 Закладка 1 включает закладку 2
    6 Закладка 2 включает закладку 1
    7 Закладки начинаются в одном месте, но закладка 1 длиннее закладки 2
    8 Закладки начинаются в одном месте, но закладка 2 длиннее закладки 1
    9 Закладки заканчиваются в одном месте, но закладка 1 длиннее закладки 2
    10 Закладки заканчиваются в одном месте, но закладка 2 длиннее закладки 1
    11 Закладка 1 ниже и смежная с закладкой 2
    12 Закладка 1 выше и смежная с закладкой 2
    13 Закладки не существуют

Имена некоторых закладок - параметры функции CmpBookmarks приведены ниже:

\sel - текущее выделение или точка вставки,

\EndOfDoc - конец документа,

\Doc - целый документ, кроме символа конца документа.

  • Mid$(Строка$,Начало[, Количество]) возвращает подстроку (часть строки) строки-аргумента,
  • SelectCurWord выделяет текущее слово,
  • Selection$() возвращает строку - выделенный фрагмент текста. Если фрагмент не выделен, то возвращает символ, следующий за курсором,
  • UnderLine, Underline() для выделенного фрагмента устанавливает или отменяет оформление подчeркиванием:
    • 0 - ни один из символов не оформлен подчeркиванием,
    • 1 - все символы фрагмента оформлены подчeркиванием,
    • -1 - часть символов оформлена подчeркиванием,
  • WordLeft [НаСколько], WordLeft(НаСколько) перемещает курсор влево на указанное количество слов. Если параметр "НаСколько" не задан, то выполняется перемещение на одно слово. WordLeft() возвращает 0, если курсор не может быть перемещeн и -1, если действие не может быть выполнено,
  • WordRight(НаСколько), WordRight[НаСколько] перемещает курсор вправо на указанное количество слов. Если параметр "НаСколько" не задан, то выполняется перемещение на одно слово. WordRight(), возвращает 0, если курсор не может быть перемещeн и -1, если действие не может быть выполнено.
антонина квасова
антонина квасова
Владимир Муратов
Владимир Муратов

По курсу Visual Basic где же взять материалы для практических работ? 

Светлана Ведяева
Светлана Ведяева
Россия, Саратов
Оксана Пагина
Оксана Пагина
Россия, Москва