Создание пользовательской формы
Для создания собственных диалоговых окон разрабатываемых приложений в VBA используются формы. Редактор форм является одним из основных инструментом визуального программирования. Новые формы добавляются в проект выбором команды Insert | UserForm из меню Редактора VBA. В результате выводится незаполненная форма (объект UserForm1) с панелью элементов Toolbox, которые можно внедрять в форму, как объекты. На форме присутствует фоновая сетка точек для выравнивания внедряемых элементов управления. Просмотреть или установить свойства пользовательской формы можно в диалоговом окне Properties, которое вызывается из меню View | Properties Window Редактора VBA, по клавише F4 или через контекстное меню - Pronerties. Свойства отображаются на двух закладках: Alphabetic - по алфавиту и Categorized - сгруппированные. Большинство значений свойств «по умолчанию» как самой формы, так и отдельных элементов, вполне удовлетворительны, а в изменениях нуждаются только некоторые свойства. Ниже приводятся основные свойства объекта UserForm, которые обычно устанавливаются отдельно для каждой конкретной пользовательской формы:
Замечание. Последние свойства можно установить, изменяя размеры формы на экране путем протягивания за маркеры. Некоторые стандартные методы и события, используемые при работе с формами:
Элементы управления разработчик приложения может поместить на форму через кнопки, расположенные на панели элементов Toolbox путем их перетаскивания на форму. Основные элементы управления:
Каждый элемент управления в форме является объектом, поэтому имеет набор свойств, которые отображаются в окне свойств элемента и могут быть изменены. Общие свойства элементов управления:
Рассмотрим более подробно некоторые элементы управления и перечислим их основные свойства и методы: • Надпись (Label) - для создания поясняющих надписей на форме; основные свойства: Caption, Font, TextAlign (способ выравнивания); • Поле (TextBox) - применяется для ввода текста, который в последующем используется в программе, или вывода в него результатов расчетов программы (после соответствующих преобразований форматов); основные свойства: Text (возвращает текст, содержащийся в поле), MiiItiLine (устанавливает многострочный режим ввода текста в поле), Font, TextAlign и др.; одним из основных событий, связанных с полем ввода является событие Change (инициируется всякий раз, когда изменяется значение элемента управления); • Кнопка (CommandButton) - в основном используется для инициирования выполнения некоторых действий, вызываемых ее нажатием, например, запуск программы или остановка ее выполнения, печать результатов и т.д.; основное свойство - Caption, возвращающее надпись на кнопке, а основное событие - Click,инициируемое всякий раз, когда по кнопке щелкают мышью; • Переключатель (OptionButton) - позволяет выбрать одну из нескольких взаимоисключающих альтернатив; переключатели обычно отображаются группами по выбираемым альтернативам; группировка производится при помощи свойства GroupName,т.е. переключатели, которые имеют одно и то же значение этого свойства, образуют одну альтернативную группу вариантов. Наиболее часто используемым свойством переключателя является Value,которое возвращает значение True,если переключатель выбран, и False в противном случае, а также свойство Caption,возвращающее текст надписи, отображаемой рядом с переключателем. Основными событиями переключателя являются события Click и Change; • Флажок (CheckBox) - предоставляет пользователю возможность выбора; Как отмечалось выше, для каждой новой формы VBA создает отдельный модуль, в котором записываются коды процедур обработки событий формы и элементов управления, размещенных в ней, причем первая и последняя строки процедур формируются автоматически. Таким образом, что создать интерфейс для разрабатываемой программы в виде пользовательской формы, необходимо: • вставить в проект объект UserForm и настроить таблицу его свойств; • разместить на форме необходимые элементы управления (надписи, поля, кнопки, флажки, рисунки и т.п.) и настроить таблицы их свойств; • написать коды процедур обработки событий. Пример. Создадим пользовательскую форму для решения квадратного уравнения А-х +В-Х + С = 0,в том числе, и с комплексными корнями. На форме (она названа как Name = MyForml) разместим элементы управления Поле для ввода коэффициентов А, В и С (их имена РА, РВ и PC соответственно) и вывода корней уравнения XI и Х2 (имена полей РХ1 и РХ2), две кнопки для очистки полей от данных предыдущего решения (кнопка с именем CommadButton2) и запуска программы (кнопка с именем CommadButtonl), а также поясняющие надписи:
В автоматически сформированные заготовки для процедур событий кнопок допишем коды обработки событий (по нижеприведенному коду самостоятельно восстановите блок-схему алгоритма решения!):
Пояснения к коду: функция Val преобразует символьную информацию в числовую; функция CStr - наоборот, число в строку символов; функция Round(...,n) округляет вещественное число до п знаков; & - оператор склеивания строковых выражений.
|