
3. Порядок выполнения работы
Обучаемому необходимо усовершенствовать интерфейс информационной системы, разработанной при выполнении лабораторной работы №1, сделать его более «дружественным» и удобным для конечного пользователя. Для этого необходимо добавить:
две процедуры обработки событий рабочей книги;
две процедуры обработки событий рабочего листа;
два элемента управления с соответствующими обработчиками событий.
События рабочей книги, рабочего листа и элементы управления выбираются из вышеприведенных списков в соответствие с целесообразностью их использования в конкретной информационной системе.
4. Содержание отчета
Титульный лист
Задание
Текст программы
Результаты работы программы
5. Контрольные вопросы:
Какие существуют стандартные элементы управления ?
Назвать основные свойства элементов управления.
Назвать основные методы элементов управления.
Назвать основные события элементов управления.
Что такое событие ?
Привести синтаксис процедуры обработки события.
Лабораторная работа №3
«Автоматизация проектов с помощью пользовательских форм»
1. Цель работы
Изучить основные приемы работы с пользовательскими формами, их свойства, методы и события. Научиться разрабатывать «дружественный» интерфейс пользователя в информационной системе на основе использования форм и элементов управления.
2. Теоретические сведения
VBA предоставляет разработчику не только возможность использования уже существующих встроенных диалоговых окон, но и средства для разработки своих собственных форм. Пользовательские окна обеспечивают уникальный: интерфейс, наилучшим образом приспособленный для решения конкретных задач, стоящих перед пользователем.
По своей сути пользовательская форма представляет собой диалоговое окно, в котором можно размещать элементы управления. Формы позволяют реализовывать интерфейс, к которому пользователь привык, работая с программными продуктами операционной системы Windows.
С точки зрения VBA форма представляет собой объект UserForm. Как и любой объект, она имеет свои свойства, методы и события.
Диалоговое окно является формой. Чтобы добавить форму в проект:
1. Перейдите в редактор Visual Basic.
2. Выберите команду Insert | UserForm.
В проекте появится новая форма. В проекте может быть как одна, так и несколько форм. Размеры формы можно изменять при помощи маркеров изменения размеров.
В таблице 3 приведены наиболее часто используемые свойства, методы и события формы.
Таблица 3
Свойства, методы и события формы
Свойство |
Описание |
Name |
Возвращает или устанавливает имя пользовательской формы |
Caption |
Возвращает или устанавливает текст, отображаемый в строке заголовка формы |
BorderStyle |
Возвращает или устанавливает тип границы. Доступно только на этапе конструирования. Допустимые значения: fmBorderStyleNone или 0 (нет видимой границы); fraBorderStyleSingle или 1 (имеется граница, используется по умолчанию) |
BorderColor, BackColor |
Возвращают и устанавливают цвет фона и текста формы. Цвета зашифровываются в шестнадцатеричной системе счисления. |
Left и Тор |
Возвращают или устанавливают местоположение верхнего левого угла формы |
Height и Width |
Возвращают или устанавливают высоту и ширину формы. Эти свойства учитывают толщину границы формы и строку заголовка |
InsideHeight и InsideWidth |
Возвращают высоту и ширину формы без толщины границы формы и строки заголовка |
Picture |
Определяет рисунок, отображаемый как фон формы. При программной установке данного свойства применяется функция LoadPicture. Ее параметр задает полное имя растрового файла, используемого в качестве рисунка. |
PicturesizeMode |
Определяет способ размещения растрового изображения на форме. Допустимые значения: • fmPictureSizeModeClip или 0 (части изображения, которые выходят за границы формы, обрезаются. Используется по умолчанию); • fmPictureSizeModeStretch или 1 (растягивает изображение так, чтобы оно заполняло всю поверхность формы); • fmPictureSizeModeZoom или 3 (растягивает изображение с сохранением пропорций так, чтобы оно помещалось в форме) |
PictureTiling |
Логическое свойство, которое определяет, надо ли заполнять форму мозаикой, созданной из растрового изображения, заданного свойством Picture |
MousePointer |
Устанавливает форму указателя мыши |
MouseIcon |
Если значение свойства MousePointer равно 99, то это свойство задает cur-файл, растровое изображение из которого используется в качестве значка курсора. В коде этому свойству присваивается значение функции LoadPicture, значением параметра которой является полное имя cur-файла. В следующем примере устанавливается курсор в форме руки с поднятым вверх указательным пальцем. MouseIcon = LoadPicture("H_point.cur") MousePointer = 99 |
Метод |
Описание |
Show |
Отображает форму на экране |
Hide |
Скрывает форму |
Move |
Изменяет местоположение и размер формы |
PrintForm |
Печатает изображение формы |
Событие |
Описание |
Initilize |
Происходит во время конфигурирования формы, но до ее загрузки |
Resize |
Происходит при изменении размеров формы |
Terminate |
Происходит при закрытии формы |
Click, DblClick |
Происходят при щелчке и двойном щелчке на форме |
Mouse Down, MouseUp |
Происходят при нажатии кнопки мыши и ее отпускании |
KeyDown, KeyUp, KeyPress |
Происходят при нажатии и отпускании клавиши |
Activate, Deactivate |
Происходят при активизации и деактивизации формы |
Layout |
Происходит при изменении размеров или перемещении формы или ее элементов управления. Используется совместно со свойством LayoutEffect для распознавания измененных или передвинутых элементов управления |
Если свойство формы устанавливается в коде модуля этой формы, то вместо инструкции
UserForm1.Caption = "Пример"
можно использовать следующую инструкцию, которая также устанавливает текст, отображаемый в строке заголовка этой формы
Caption = "Пример"
То же самое можно сказать и о других свойствах формы.
Операторы Load, Unload и End
При работе с формами особое место занимают следующие три оператора, которые управляют процессами отображения окна на экране и закрытием окна.
Load загружает окно.
Синтаксис: Unload object.
Unload выгружает форму с экрана и из памяти.
Синтаксис: Unload object
End завершает выполнение кода без генерации событий Unload или Terminate. Поэтому завершение работы приложения по инструкции End игнорирует код, написанный в процедурах, обрабатывающих перечисленные события.
Ключевое слово Me
Обычно предпочтителен упрощенный синтаксис установки или считывания значений свойств и применения методов формы. А именно, в коде, который написан в модуле формы, ссылку на саму форму можно опускать. Например, следующий код устанавливает текст заголовка и цвет фона формы.
Caption = "Test"
BackColor = vbRed
Существует еще один способ упрощения кода. В VBA имеется ключевое слово Mе, которое в представленной ситуации также возвращает ссылку на форму. Поэтому тот же самый код можно написать следующим образом:
Me.Caption = "Test"
Me.BackColor = vbRed
Хотя ключевое слово Me и кажется излишним, его использование может упростить сам процесс набора кода. Дело в том, что в редакторе VBA после набора имени объекта и точки на экране отобразится список со всеми свойствами и методами этого объекта, из которого можно просто выбрать нужный элемент, и он автоматически будет вставлен в код. Таким образом, ключевое слово Me позволяет использовать встроенные средства редактора VBA по автоматизации набора кода.