Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Рассмотрим создание интерфейса пользователя на простом примере. Пусть на листе Excel размещены столбцы чисел. Требуется, чтобы проектируемое приложение позволяло пользователю выбрать столбец для сортировки, выбрать вариант сортировки (по возрастанию или по убыванию) и, наконец, выполнить саму сортировку. Из поставленной задачи следует, что наше приложение надо “оснастить” элементами управления (см. подраздел 2.2) для выбора номера столбца (поле во взаимосвязи со счетчиком), варианта сортировки (переключатели) и для запуска событийной процедуры сортировки (командная кнопка). С помощью VBA эти элементы управления можно разместить или прямо на листе Excel (рис. 10.1), или же на диалоговой форме, которая будет появляться в диалоговом окне (поверх листа Excel) при нажатии на кнопку Сортировать – кнопку целесообразно оставить на листе Excel и в этом случае. Рассмотрим первый вариант.
С помощью пункта меню Вид/Панели инструментов/Visual Basic разместим панель инструментов VBA рядом с другими панелями инструментов Excel (см. рис.10.1). На этой панели нас будут интересовать два значка: Элементы управления (значок в виде молоточков) и Редактор Visual Basic (соседний слева). Второй значок нам понадобится позже, во время разработки процедур, для переключения на окно редактора. А нажатие на кнопку с первым значком приведет к появлению в пределах листа Excel окна, содержащего палитру элементов управления (на рис. 10.1 – справа) и три кнопки: Режим конструктора, Свойства и Исходный текст.
Первая из этих кнопок позволяет перейти в режим конструктора. В этом режиме работа пользователя с таблицей Excel блокируется, но есть возможность создавать приложение VBA. Вторая кнопка позволяет открыть окно Свойства – оно показано на рисунке для счетчика, имеющего имя SpinButton1 (он выделен щелчком мыши). Третья кнопка позволяет переключиться в окно редактора, причем именно на процедуру обработки события, связанного с выделенным элементом управления – на рис.10.2 это событийная процедура, срабатывающая в тот момент, когда пользователь изменяет значение счетчика.
Итак, теперь на листе Excel имеется весь необходимый инструментарий для создания интерфейса приложения. Само создание интерфейса сводится к выбору элемента управления из палитры (на рис. 10.1 – справа), к размещению этого элемента с помощью мыши на листе Excel, к установке свойств элемента и к написанию событийной процедуры, если она требуется для данного элемента управления. В интерфейс нашего приложения включены следующие элементы управления:
· Надпись со статическим текстом, для которой установлено свойство Caption (Заголовок) – Номер столбца;
· поле, для которого установлено свойство Value (Значение) – 1; если пользователь не изменит это значение, то сортироваться будет первый столбец;
· счетчик; для него установлены свойства Min =1, Max =100, Value =1;
· переключатели, для которых установлены свойства Caption и Value; у одного из переключателей заголовок - По возрастанию, а у второго – По убыванию; у одного свойство Value = True (истина – истинным считается утверждение о выборе этого переключателя), у второго Value = False (ложь);
· командная кнопка; для нее установлено свойство Caption = Сортировать.
Каждому элементу управления VBA присваивает имя по умолчанию. Например, первому переключателю – OptionButton1, второму – OptionButton2, счетчику – SpinButton1, т.е. берется английское название элемента, и к нему присоединяется порядковый номер. Имя можно изменить, как всякое свойство объекта. Например, переключатели можно назвать короче: Option1, Option2. Имена элементов управления участвуют в образовании имен событийных процедур. Так, при двойном щелчке мышью по элементу SpinButton1 произойдет переключение на окно Visual Basic (Рис. 10.2), в котором автоматически появится пустая событийная процедура:
Private Sub SpinButton1_Change()
End Sub
Правила записи процедур мы рассмотрим в следующих подразделах. Сейчас важно понять, что процедура SpinButton1_Change будет автоматически выполняться, как только пользователь изменит значение счетчика (Change – изменять).
Панель инструментов
|
|
|
|
Вторая событийная процедура в нашем примере связывается с командной кнопкой CommandButton1, имеющей заголовок Сортировать. При двойном щелчке по этой кнопке в окне редактора VBA автоматически возникнет пустая процедура:
Private Sub CommandButton1_Click()
End Sub
Ее имя образовано из имени элемента управления (CommandButton1) и имени события (Click – щелчок).
Переключение на окно Excel
Создание формы
Рис. 10.2. Окно Visual Basic, в нем окна проекта и редактора
Приведенный пример показывает, что создание интерфейса приложения, которое было трудной работой в более ранних системах программирования, в современных средах визуального программирования выполняется моментально – и это можно утверждать без преувеличений. Но поясним еще вариант размещения элементов управления не на листе Excel, а на отдельной форме. В этом варианте на лист Excel поместим только кнопку CommandButton1 с тем же заголовком Сортировать, а остальные элементы управления и дополнительно кнопку Ok поместим на диалоговую форму с именем Dialog1 и заголовком Параметры сортировки. Для создания этой формы надо переключиться в окно Visual Basic и с помощью кнопки на панели инструментов или через пункт меню Вставка/UserForm создать пустую форму. Она появится в окне Visual Basic. При щелчке мышью по форме появляется также окно Панель элементов, содержащее палитру элементов управления. Теперь остается с помощью кнопки на панели инструментов раскрыть в окне Visual Basic еще окно свойств, установить свойства формы и разместить на ней требуемые нам элементы управления точно так же, как это было сделано на листе Excel (Рис. 10.3). Такой подход почти освободит лист Excel от элементов управления, но потребует дополни
тельных усилий при разработке приложения.
Рис. 10.3. Окно Visual Basic во время создания диалоговой формы
Во-первых, теперь в начало событийной процедуры CommandButton1_Click (ее мы будем рассматривать позже) надо вставить команду для показа формы: Dialog1.Show. В этой инструкции записывается имя объекта (имя, присвоенное нами форме) и, через точку, имя метода – показать. Следовательно, как только пользователь нажмет командную кнопку на листе Excel, поверх этого листа появится диалоговое окно (Рис. 10.4). В нем пользователь выберет параметры сортировки и нажмет кнопку Ok.
Во-вторых, надо написать событийную процедуру для кнопки Ok. Эта процедура должна содержать команду Dialog1.Hide - скрыть форму Dialog1.
В-третьих, в процедурах, принадлежащих листу Excel, а не форме Dialog1 (см. процедуру CommandButton1_Click на рис. 10.2), изменится обращение к свойствам элементов управления. Так, теперь надо писать не TextBox1.Value, а Dialog1.TextBox1.Value – так указывается свойство Value (значение) объекта TextBox1 (редактируемое поле), принадлежащего форме Dialog1.
Дата публикования: 2014-11-03; Прочитано: 966 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!