Лекция: Пример разработки приложения
Требуется разработать программу Add сложения двух чисел, вводимых пользователем с клавиатуры в два поля с именами «Число 1» и
«Число 2», с отображением результата в поле «Результат». Результат должен отображаться после нажатия кнопки «Сложить». Программа должна заканчивать работу после нажатия кнопки «End».
Пользовательский интерфейс Add содержит в себе две командные кнопки, два поля отображения чисел с надписями «Число 1», «Число 2», два объекта (типа надпись) «Add»,
«Результат» и пустой объект (типа надпись) для вывода результата. Окно программы должно иметь вид, показанный на рис. 14.4.
Процесс программирования приложения Add включает в себя три этапа: проектирование интерфейса с установкой свойств объектов, написание программного кода, отладка программы.
14.2.1. Разработка пользовательского интерфейса
1) В окне редакторе Visual Basic выбрать команду ВставитьUserForm (Insert UserForm) (см. рис. 14.1).
2) Для создания на форме кнопки необходимо:
а) щелкнуть левой кнопкой мыши на изображении соответствующего элемента управления CommandButton на панели инструментов Tolls (см. рис. 14.2);
б) расположить указатель мыши на созданной кнопке – указатель изменится со стрелки на крестик, переместить крестик в то место формы, где будет находиться один из углов создаваемого элемента интерфейса;
в) нажать левую кнопку мыши и перемещать указатель до тех пор, пока изображение элемента не станет нужного размера, после чего следует отпустить кнопку – объект будет создан.
По умолчанию первая командная кнопка, имеющая набор команд управления, называется CommandButton1. Эту кнопку можно перемещать и изменять ее размеры, как это обычно делается в Windows.
3) Аналогичным способом создать вторую командную кнопку, поместив ее ниже первой. Кнопка получит имя CommandButton2.
4) Числовые и текстовые данные могут вводиться в текстовые поля
(окна). Для того чтобы создать на форме текстовое поле, нужно щелкнуть по кнопке панели инструментов и, удерживая нажатой левую кнопку мыши, переместить объект в верхний угол формы. По умолчанию объект получает имя TextBox1.
5) Повторив действия, приведенные в п.4, создать объект TextBox2 и
поместить его под объектом TextBox1.
6) Для показа текста и формирования надписей используется элемент
Надпись. Добавить надпись для отображения результата. Созданный объект получит имя Label1.
|
|
14.2.2. Установка свойств объектов
Наиболее употребительные свойства элементов в Excel VBA, их тип и значение приведены в табл. 14.2.
Таблица 14.2
Свойства элементов интерфейса
Элемент | Свойство | Значение | |
Форма | (Name) | UserForm1 | |
Caption | Add | ||
Кнопка | (Name) | Cmd1 | |
Caption | Сложить | ||
Кнопка | (Name) | CmdEnd | |
Caption | End | ||
Надпись | (Name) | Lb3 | |
Caption | Число 1 | ||
Border Style | fmBolderStyleSingle | ||
Надпись | (Name) | Lb4 | |
Caption | Число 2 | ||
Border Style | fmBolderStyleSingle | ||
Надпись | (Name) | Lb2 | |
Caption | Результат | ||
Border Style | fmBolderStyleSingle | ||
Надпись | (Name) | Lb1 | |
Caption | Empty (пусто) | ||
Border Style | fmBolderStyleSingle | ||
Надпись | (Name) | Lb5 | |
Caption | ADD | ||
Border Style | fmBolderStyleSingle | ||
Поле | (Name) | Text1 | |
SpecialEffect | fmSpecialEffectSunken | ||
TextAlign | fmTextAlignCenter | ||
Text | Empty (пусто) | ||
Окончание табл.14.2
Поле | (Name) | Text1 |
SpecialEffect | fmSpecialEffectSunken | |
TextAlign | fmTextAlignCenter | |
Text | Empty (пусто) |
Вначале необходимо изменить надпись формы с UserForm1 на Add. Для этого надо щелкнуть мышью на пользовательской форме – в окне Properties (свойство) появятся свойства формы, затем следует дважды щелкнуть на свойстве Caption (название) в левой колонке окна свойств для выделения установленного по умолчанию названия UserForm1 и ввести название Add.
Дальнейшие действия необходимо выполнить в следующем порядке:
1) щелкнуть по первой командной кнопке («CommandButton1»), она выделится маркерами, а в окне свойств (рис. 14.6) будут перечислены установки для командной кнопки (цвет фона, название, размер шрифта, ширина кноп-
ки и др.);
2) дважды щелкнуть на свойстве
Caption в левой колонке окна свойств для выделения установленного по умолчанию («CommandButtonl»);
|
Сложить
4) аналогично изменить название второй командной кнопки на End;
5) свойства текстовых полей 1 и 2 должны быть одинаковыми (они выполняют одинаковые функции – ввод чисел), поэтому следует установить их как группу. Для этого надо щелкнуть мышью по первому объекту – «TextBox1», затем, удерживая нажатой клавишу «Ctrl», – по второму объекту – «TextBox2».
В результате оба текстовых поля будут выделены, а устанавливаемые
значения свойств в окне Properties будут общими (одними и теми же) для полей TextBox1 и TextBox2;
6) установить свойство Text для текстовых полей в значение Empty (пусто). Для этого необходимо удалить текущую установку и оставить свойство пустым. В этом случае в поля TextBox1 и TextBox2 можно вводить произвольную информацию с клавиатуры;
7) перейти к установке свойств для надписи Label1, предназначенной для отображения результата. Щелкнуть мышью по объекту Label1 для его вы-деления;
8) щелкнуть на свойстве TextAlign (выравнивание), а затем – справа на стрелке окна ниспадающего списка. Щелкнуть на цифре 2 – fmTextAlignCenter (выравнивание по центру). Отображаемый результат будет выравниваться по центру поля;
10) изменить стиль рамки. Для этого необходимо щелкнуть мышью
на свойстве Border Style (стиль рамки), а затем – на стрелке окна ниспадающего списка, который появится справа. Щелкнуть на цифре 1 – fmBolderStyleSingle, чтобы добавить тонкую рамку вокруг надписи;
|
Times New Roman)
12) удалить название объекта
Label1, так как в поле объекта будет
выводиться числовой результат. Дважды щелкнуть мышью на свойстве Caption и нажать клавишу «Del»;
13) установить общие для надписей Label2, Label3, Label4 свойства: выравнивание, стиль рамки и шрифт. Выделить эти объекты как группу, используя клавишу «Ctrl» и поочередно щелкая мышью по объектам;
14) установить общие свойства – TextAlign,BorderStyle,Font, как это делалось для объекта Label1;
15) установить свойство Caption для объектовLabel2,Label3,Label4, используя значения Результат,Число 1,Число 2 соответственно;
16) щелкнуть по объекту Label5 для его выделения. Эта надпись должна иметь название программы Add, поэтому значение свойства Caption следуетзаменить на Add;
17) установить свойства объекта Label5: выравнивание по центру, отсутствие рамки (значение Border Style равно нулю), шрифт Arial, полужирный,
кегль – 20.
В результате выполненных действий все свойства объектов определены.
14.2.3. Составление программного кода
Программа управляется кнопками «Сложить» и «End» (конец), поэтому программный код будет связан с информацией, поступающей от этих кнопок.
Редактирование программы для создаваемой формы или выделенного объекта осуществляется при помощи окна кода (рис. 14.8), которое можно открыть тремя способами:
1-й способ – выбрать пункт Код (Code) в менюВид (View) (аналогичным образом можно вернуться к редактированию формы, применив пункт Объект
(Object) в меню Вид (View));
2-й способ – в проводнике проектов
(Project – VBAProject) выделить название создаваемой формы и выбрать для него в
контекстном меню пункт Показать код (View Code) (таким же образом можно вернуться к форме, применив пункт Показать объект (View Object) в контекстном меню формы);
3-й способ – выполнить двойной щелчок на элементе формы, для которого необходимо предусмотреть обработку каких-либо действий.
Блок кода, связанный с частным объектом интерфейса, называется процедурой события VBA. Тело процедуры заключено между операторами, указывающими на начало и конец подпрограммы (рис. 14.9), например:
Private Sub CmdEnd Click()
End
Еnd Sub.
Операторы и процедуры выполняются каждый раз, когда пользователь активизирует элемент интерфейса, ассоциированный с процедурой.
В данном случае событием Click является щелчок мыши, но могут быть и события другого типа. (Их можно увидеть в ниспадающем списке, щелкнув по стрелке правее надписи Click.)
Разработаем программный код для кнопок «Сложить» и «End», для этого необходимо выполнить следующие шаги:
1) открыть список объектов в окне Code (см. рис. 14.8). Все объекты интерфейсаAdd появятся в списке;
2) щелкнуть по строке с кнопкой «Cmd1» в списке объектов. Появится «пустая» процедура, связанная с кнопкой «Cmd1» (Несмотря на то, что название кнопки было изменено на Сложить, в программе ее имя осталось прежним.) В нашем примере для кнопки «Cmd1» задано одно событие – щелчок мыши;
3) набрать программные строки меж-ду утверждениями Private SubиEnd Sub(рис. 14.9);
4) дважды щелкнуть мышью по командной кнопке «End». на форме. Набрать программную строку процедуры, связанную с кнопкой «CmdEnd». В данном случае – это один операторEnd, который используется для останова программы и удаления ее с экрана.