Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Korporativnye_informatsionnye_sistemy.docx
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
260 Кб
Скачать
☆

События. Обработчики событий.

События – некоторые зарегистрированные в системе состояния. Общие события определяются действиями пользователя с элементами управления. Для объектов встроенной объектной модели предлагаются события, с которыми можно ознакомиться в справочнике (смотрите описание выбранного объекта).

Обработчики событий – программы, вызываемые операционной системой. На каждое событие в системе задано некоторая стандартная обработка. Вы можете изменить, точнее, дополнить эти действия, составив свой обработчик события. Для некоторых объектов предоставляется возможность отказаться от стандартной обработки события, это часто реализуется при помощи присваивания параметру события Cancel значения False.

Имена всех процедур-обработчиков событий формируются по следующему правилу: сначала идет имя объекта, затем символ "подчеркивание", затем – имя события. В VBA пользовательская программа не отменяет стандартной обработки.

Писать руками заголовок обработчика события не надо: выберите в левом верхнем списке объектов объект (в окне кода), а затем в правом верхнем – событие, и VBA сам составит заголовок процедуры-обработчика.

Обработчик события можно вызвать как любую другую процедуру. В примере ниже показано, как по нажатию кнопки CommandButton1 вызывается собственный обработчик события, в котором вызывается обработчик события CommandButton2_Click.

Private Sub CommandButton1_Click()

MsgBox "11"

CommandButton2_Click

End Sub

Private Sub CommandButton2_Click()

MsgBox "22"

End Sub

В некоторых языках программирования поддерживается «подъем события» по иерархии объектов. Так в JavaScript происходит поднятие события по иерархии «это есть часть», в FoxPro – по иерархии наследования. В VBA такого нет.

Использование событий объекта Application

В объектной модели MS Word слишком мало событий у объекта Document. Но возможности Вашего вмешательства можно существенно расширить, если воспользоваться событиями Word.Application. В примере 2 приведен текст, который можно приписать к объекту ThisDocument, и добиться того, что в выделяемых фрагментах программа будет изменять шрифт.

Пример:

Public WithEvents app As Word.Application

Private Sub begin_app()

set app = Word.Application

end sub

Private Sub app_WindowSelectionChange (ByVal Sel As Selection)

Sel.Font.Bold = True

End Sub

Private Sub end_app()

set app = Nothing

end sub

Написав первую строку в окне кода для ThisDocument, выберите, находясь в редакторе, в выпадающем списке объектов (наверху окна кода слева) объект app и посмотрите, какие у него есть события (наверху окна кода справа). В приведенном выше примере использовано событие «изменение выбранного фрагмента»: WindowSelectionChange.

Использование диалогов

Применение встроенных диалогов плохо описано в справочнике. Но для того чтобы ими воспользоваться необходимо понять базовые принципы и затем методом проб уточнять значение тех или иных параметров. Важно отметить то, что коллекции диалогов MS Word и MS Excel несколько отличаются, причем более функциональной является коллекция MS Word. Поэтому часто целесообразно в программе, связанной с документом MS Excel, описать и создать объект типа Word.Application, у которого взять свойство Dialogs.

Далее разберем работу объектом Dialog, предоставляемым MS Word. Разделы встроенного справочника, которые могут вам помочь: описание коллекции Dialogs, описание объекта Dialog, перечень встроенных диалогов с описанием их параметров Built-in Dialog Box Argument Lists, несколько примеров в разделе Displaying built-in Word dialog boxes. Конечно, полезно заглянуть в связанные с указанными разделы.

Методы объекта Dialog: Display, Show, Execute, Update.

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

Метод Execute вызывает выполнение умалчиваемых стандартных для заданного диалога действий. Его можно применять для того, чтобы программно произвести некоторые настройки, не показывая окно диалога пользователю. Либо для того чтобы сначала проверить, что задал пользователь, и если он задал допустимые параметры, выполнить стандартные действия с этими допустимыми параметрами.

Фрагмент программы ниже показывает пользователю привычный диалог для выбора некоторого файла, ограничивая список показываемых имен файлами с расширением «.doc», затем проверяется, что выбран файл, имя которого начинается с «отчет», и выбранный файл открывается.

With Dialogs(wdDialogFileOpen)

.Display 2000

If Left(.Name, 5) = "отчет" Then .Execute

End With

Метод Execute позволяет выполнить некоторые изменения настроечных параметров для текущего объекта без показа диалога на экране.

With Dialogs(wdDialogFormatParagraph)

.KeepWithNext = 1

.Execute

End With

Метод Show состоит в показе диалогового окна и выполнении выбранных пользователем стандартных действий, зависящих от вида окна: открытие файла, изменение некоторых настроек и т.п.

Метод Update меняет (обновляет) параметры диалога в зависимости от изменения, производимого в объекте Selection. Пусть выделенный фрагмент был написан с применением шрифта Times New Roman. Тогда в приведенном фрагменте в окне диалога будет выделено имя шрифта Times New Roman.

Set myDialog = Dialogs(wdDialogFormatFont)

myDialog.Show

Если же после создания диалога программно изменяется шрифт выделенного фрагмента (или выделенный фрагмент), то для переустановки выделенного в диалоге шрифта следует вызвать метод Update.

Set myDialog = Dialogs(wdDialogFormatFont)

Selection.Font.Name = "Arial"

myDialog.Update

myDialog.Show

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]