Создание пользовательской формы
Для создания пользовательской формы надо выполнить следующие действия:
1. Открыть новый файл или любой файл, в котором вы уже работали.
2. Выполнить команду меню Сервис | Макрос | Редактор Visual Basic. Откроется окно редактора Visual Basic.
3. Щелкнуть на кнопке Insert UserForm панели инструментов окна редактора Visual Basic или выполнить команду Insert | UserForm (Вставка | Экранная форма). Появится новая экранная форма.
Созданная экранная форма имеет по умолчанию строку с заголовком UserForm1. Сетка на макете формы помогает размещению элементов управления, при отображении формы в приложении сетка не видна (рис.5).
Рис.5. Создание формы
После
создания формы необходимо просмотреть
свойства этого объекта и изменить
установки, если это требуется по условию
задачи. Для отображения окна свойств
надо выбрать команду View
| Properties Window
(Вид
| Окно свойств)
или щелкнуть по одноименной кнопке на
панели инструментов
.
Если у вас включен показ окна свойств Properties (он включается по клавише <F4>), то в этом окне будут представлены свойства формы. Переход к редактору кода для этой формы (по умолчанию открывается событие Click) выполняется по клавише <F7>, возврат обратно в окно дизайнера форм — по <Shift>+<F7>.
Для форм и элементов управления можно настраивать свойства при помощи графического интерфейса окна свойств — резко уменьшается количество программного кода, которое нужно писать вручную.
Некоторые самые важные свойства форм (кроме ShowModal все они применимы и для других элементов управления) приведены далее.
Name — это свойство определяет имя формы. Имя формы используется только программистом в коде для этой формы (и в окнах редактора Visual Basic). После создания формы ее имя, предлагаемое по умолчанию (UserForm1), рекомендуется заменить на что-нибудь более значимое, чтобы было проще ориентироваться в программе (это относится ко всем элементам управления).
Caption — определяет заголовок формы (по умолчанию совпадает с именем формы). Рекомендуется ввести строку, которая будет напоминать пользователю о назначении формыю.
ShowModal — если свойство установлено в True (по умолчанию), то пользователь не может перейти к другим формам или вернуться в документ, пока не закроет эту форму (так называемый "модальный" режим работы).
Большая часть других свойств относится к внешнему виду, размерам и ме-стонахождению формы.
Самые важные методы форм перечислены в следующем списке.
В процессе редактирования формы (из окна редактора Visual Basic) ее можно запускать по нажатию клавиши <F5>. После того, как форма будет готова, вы должны обеспечить ее запуск в документе. Для запуска формы нужно воспользоваться методом Show():
UserForm1.Show
После того, как пользователь введет или выберет нужные данные на форме и нажмет требуемую кнопку, форму необходимо убрать. Для этого можно воспользоваться двумя способами:
• спрятать форму (использовать метод Hide()), например:
UserForm1.Hide
Форма будет убрана с экрана, но останется в памяти. Потом при помощи метода Show() можно будет опять ее вызвать в том же состоянии, в каком она была на момент "прятанья", а можно, например, пока она спрятана, программно изменять ее и расположенные на ней элементы управления. Окончательно форма удалится из памяти при закрытии документа;
• если форма больше точно не потребуется, можно ее удалить из памяти при помощи команды Unload:
Unload UserForm1
Остальные методы относятся либо к обмену данными через буфер обмена (Copy(), Cut(), Paste()), либо к служебным возможностям формы (PrintForm(), Repaint(), Scroll()
Важнейшая концепция VBA — события. Событие (event) — это то, что происходит с программой и может быть ею распознано. Например, к событиям относятся щелчки мышью, нажатия на клавиши, открытие и закрытие форм, перемещение формы по экрану и т. п. VBA построен таким образом, чтобы можно было создавать на нем программы, управляемые событиями (event-driven).
Самые важные события форм приведены далее.
Initialize — происходит при подготовке формы к открытию (появлению перед пользователем). Обычно в обработчик для этого события помещается код, связанный с открытием соединений с базой данных, настройкой элементов управления на форме, присвоением значений по умолчанию и т. п.
Click (выбирается по умолчанию) и DblClick — реакция на одиночный и двойной щелчок мыши соответственно. Для формы эти события используются не так часто. Обычно обработчики щелчков применяются для кнопок (элементов управления CommandButton).
Terminate — используется при нормальном завершении работы формы и выгрузке ее из памяти (например, по команде Unload). Обычно применяется для разрыва открытых соединений с базой данных, освобождения ресурсов, протоколирования и т. п. Если работа формы завершается аварийно (например, запустившее форму приложение выдало команду End), то это событие не возникает.
Остальные события связаны либо с изменением размера окна формы, либо с нажатиями клавиш, либо с активизацией (получением фокуса) или деактивизацией (потерей фокуса).
Поскольку форма — это во многом просто контейнер для хранения других элементов управления, главное ее событие — Initialize. Все остальные события обычно используются не для формы, а для расположенных на ней элементов управления.
Разрабатываемое на языке приложение называется проектом. Проект включает в себя не только форму с размещенными на ней управляющими элементами, но и программные модули обработки событий, которые описывают поведение объектов приложения и взаимодействие объектов между собой.
Порядок выполнения работы
Прочитать теоретический материал.
Выполнить практическую часть работы в соответствии с вариантом.
Оформить отчет о выполнении лабораторной работы.
Отчет должен содержать:
Титульный лист, оформленный по образцу;
Постановку задачи;
Теоретические сведения;
Порядок выполнения работы (последовательность выполнения основных этапов работы);
Результат выполнения работы
(код макросов с комментариями и рисунки, показывающие результат работы программы).
Требования по форматированию отчета о выполнении лабораторной работы:
Параметры страницы: ориентация книжная, поля: левое – 2см, правое, верхнее, нижнее – по 1,5 см;
Шрифт Times New Roman, высота 14пт, интервал шрифта обычный; выравнивание по ширине, отступ слева на 0 см, отступ первой строки – 1см, межстрочный интервал одинарный;
Нумерация страниц в правом нижнем углу;
Содержащиеся в отчете рисунки должны иметь названия;
К отчету прилагается электронный вариант выполненной работы, включающий в себя файл с отчетом (*.docx) и файл с созданным макросом (*.xlsm).
Лабораторная работа сдается за компьютером.
Практическая часть
Открыть Excel, переименовать «Лист 1» в лист со своей фамилией.
Добавить на переименованный лист Excel три кнопки, по нажатию на одну из них на экране должна появляться форма, по нажатию на другую – эта форма скрывается, третья кнопка – для очистки содержимого выделенного диапазона (рис.6);
Создать форму (в редакторе Visual Basic выбрать Insert/UserForm) согласно следующим требованиям:
Рис.6 Образец графического интерфейса разрабатываемого приложения
Заголовок формы изменить на «Форма для заполнения таблицы»;
Добавить на форму две кнопки.
По нажатию на одну из них («Enter») должно выполняться следующее:
в ячейки А1:С1 заносятся названия столбцов таблицы («Слово», «Часть речи» и «Перевод» соответственно), выполняется форматирование (изменение заливки, кегля, начертания, цвета шрифта) указанных ячеек;
построчно заполняется таблица вводимыми с помощью формы данными.
По нажатию на другую кнопку «Exit» – форма скрывается.
Границы таблицы должны быть расчерчены тонкой непрерывной линией черного цвета.
Данные для заполнения вышеуказанных ячеек вводить, используя элементы управления: надпись, поле и комбинированный список;
Добавить на форму надпись, по нажатию на которую будет выводиться текущее время;
Разместить на форме произвольный рисунок.
