
- •Лабораторная работа №12 по курсу “Компьютерные информационные технологии” разработка программ на языке vba для работы с пользовательскими формами в excel
- •1 Создание пользовательской формы в Excel
- •2 Программа с использованием пользовательской формы: пример 1 (кнопки, текстовые поля, надписи, простые списки)
- •2.1 Создание элементов управления и указание их свойств
- •2.2 Разработка программы
- •3 Программа с использованием пользовательской формы: пример 2 (счетчики, флажки)
- •3.1 Создание элементов управления и указание их свойств
- •3.2 Разработка программы
- •4 Список из нескольких колонок
- •5 Список с возможностью выбора нескольких элементов
- •6 Составление списка в программе
- •7 Поля ввода ячеек
3 Программа с использованием пользовательской формы: пример 2 (счетчики, флажки)
Пусть требуется создать пользовательскую форму для возведения чисел в заданную степень и для извлечения корней заданной степени (или для выполнения обеих этих операций). Для ввода числа, которое требуется возвести в степень (или извлечь из него корень), должно использоваться текстовое поле. Показатель степени (для возведения или извлечения корня) задается с помощью счетчика. Для выбора операции (возведение в степень или извлечение корня) используются флажки. Результаты должны выводиться в текстовые поля. Вычисление должно выполняться по нажатию кнопки, размещенной на пользовательской форме. Кроме того, требуется создать кнопку для закрытия пользовательской формы.
3.1 Создание элементов управления и указание их свойств
Пусть требуется создать пользовательскую форму примерно такого вида, как показано на рисунке 3. Для этого потребуется задать следующие элементы управления и их свойства (конечно, имена элементов управления могут быть и другими):
форма в целом (UserForm): Name – Stepen_koren (имя формы, используемое для ссылок на нее); Caption – Степени и корни (заголовок формы);
надписи (Label): две надписи со свойствами Caption – Число и Показатель;
текстовые поля (TextBox): четыре текстовых поля со свойствами Name – osnovanie, pokazatel, stepen, koren (на рисунке 3 эти текстовые поля приведены сверху вниз);
счетчик (SpinButton): свойство Name – pokaz;
флажки (CheckBox): два флажка со свойствами Name – Vozved и Izvlech, Caption - Возведение и Извлечение;
кнопки: кнопка для вычисления результата должна иметь свойства Name – Schet, Caption – Вычислить, а кнопка для закрытия формы - свойства Name – Vyhod, Caption – Выход.
Примечание – Важно понимать, что все связи между элементами управления (например, отображение значения счетчика, вывод результатов операций и т.д.) должны задаваться в программе для работы с формой.
|
|
Рисунок 3 – Вид пользовательской формы (пример 2) в результате ее редактирования |
Рисунок 4 – Вид пользовательской формы (пример 2) во время работы |
3.2 Разработка программы
Программа для работы с формой для данной задачи должна иметь примерно следующий вид:
Private Sub UserForm_Initialize()
Vozved.Value = True
Izvlech.Value = True
End Sub
Private Sub pokaz_change()
pokazatel.Value = pokaz.Value
End Sub
Private Sub raschet_click()
x = CSng(osnovanie.Value)
y = CInt(pokazatel.Value)
If vozved.Value = True Then
z = x ^ y
stepen.Value = z
Else
stepen.Value = ""
End If
If Izvlech.Value = True Then
z = x ^ (1 / y)
koren.Value = z
Else
koren.Value = ""
End If
End Sub
Private Sub Vyhod_click()
Unload stepen_koren
End Sub
Процедура UserForm_Initialize() выполняется в начале работы с пользовательской формой. Операторы Vozved.Value = True и Izvlech.Value = True означают, что в начале работы с формой оба флажка (Vozved и Izvlech) должны быть установлены.
Процедура pokaz_change() выполняется при каждом изменении значения счетчика pokaz. Оператор pokazatel.Value = pokaz.Value означает, что значение счетчика pokaz выводится в текстовое поле pokazatel (т.е. присваивается его свойству Value). Это необходимо, чтобы видеть на экране значение счетчика (т.е. заданную степень).
Процедура Schet_Click() выполняется при каждом нажатии кнопки с именем Schet (т.е. кнопки “Вычислить”). В операторе x = CSng(osnovanie.Value) переменной x присваивается значение текстового поля osnovanie (т.е. число, которое требуется возвести в степень и/или извлечь из него корень); функция CSng преобразует значение этого поля в тип Single (т.е. вещественное число). В операторе y = CInt(pokazatel.Value) переменной y присваивается значение поля pokazatel (т.е. показатель степени), преобразованное в тип Integer.
Если выполняется условие vozved.Value = True (т.е. флажок Vozved установлен), то выполняется заданное возведение в степень, и результат выводится в текстовое поле Stepen. Если условие Vozved.Value = True не выполняется (т.е. флажок Vozved сброшен), то текстовое поле Stepen очищается (в него выводится пустая строка).
Аналогично, если установлен переключатель Izvlech, то выполняется извлечение корня заданной степени, и результат выводится в текстовое поле Koren.
Процедура Vyhod_click(), выполняемая при нажатии кнопки с именем Vyhod, предназначена для закрытия формы. Она аналогична процедуре для этой цели, приведенной в предыдущем примере.
На рисунке 4 показан вид созданной пользовательской формы во время работы с ней.