КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Разработка программыЧтобы приступить к написанию программы для работы с созданной пользовательской формой, требуется после создания формы, приведенной на рисунке 1, выбрать команду View – Code. Вызывается редактор VBA, и открывается модуль пользовательской формы. В нем необходимо ввести следующий текст программы (некоторые заголовки подпрограмм будут созданы автоматически): Private Sub UserForm_Initialize() Operacii.AddItem "сумма" Operacii.AddItem "произведение" Operacii.ListIndex = 0 End Sub Private Sub Schet_Click() diap = nach.Value + ":" + kon.Value Set d = Range(diap) m = d.Rows.Count n = d.Columns.Count If Operacii.ListIndex = 0 Then Sum = 0 For i = 1 To m For j = 1 To n Sum = Sum + d.Cells(i, j).Value Next j Next i rez.Value = Sum End If If Operacii.ListIndex = 1 Then proizv = 1 For i = 1 To m For j = 1 To n proizv = proizv * d.Cells(i, j).Value Next j Next i rez.Value = proizv End If End Sub
Private Sub Vyhod_click() Unload sum_proizv End Sub
Процедура UserForm_Initialize() выполняется в начале работы с пользовательской формой, т.е. выполняет ее инициализацию. Оператор Operacii.AddItem "сумма" означает, что к списку Operacii применяется действие (метод) AddItem, т.е. к списку добавляется заданный элемент – слово “сумма”. Затем в список аналогично включается элемент “произведение”. В операторе operacii.ListIndex = 0 свойству ListIndex списка Operacii присваивается значение 0; это означает, что по умолчанию в списке будет выбран первый по порядку элемент, т.е. элемент “сумма” (элементы списка имеют номера, начиная с нуля). Процедура Schet_Click() выполняется при нажатии кнопки с именем Schet (т.е. кнопки “Вычислить”). В операторе diap = nach.Value + ":" + kon.Value составляется символьная строка из значений текстовых полей nach и kon, между которыми добавляется двоеточие; таким образом, строка diap будет представлять собой диапазон ячеек, заданный в текстовых полях. Например, если в текстовом поле nachпользователь введет значение B2, а в текстовом поле kon– значение F4, то переменная diap будет иметь значение “B2:F4”. В операторе Set d = Range(diap) переменная d связывается с диапазоном, заданным переменной diap. В двух следующих операторах определяется количество строк и столбцов в заданном диапазоне. В операторе If Operacii.ListIndex = 0 Then … проверяется, чему равно свойство ListIndex списка Operacii, т.е. какой элемент выбран в списке Operacii. Если выбран элемент с номером 0 (т.е. первый элемент – “сумма”), то выполняется суммирование значений ячеек в заданном диапазоне. Результат вычислений (переменная Sum) присваивается текстовому полю rez: rez.Value = Sum. Аналогично, если выбран элемент списка с номером 1 (“произведение”), то вычисляется произведение ячеек в заданном диапазоне, и результат выводится в текстовое поле rez. Процедура Vyhod_click() выполняется при нажатии кнопки с именем Vyhod (т.е. кнопки “Выход”). Оператор Unload sum_proizv закрывает форму. На рисунке 2 показан вид созданной пользовательской формы во время работы с ней (т.е. во время выполнения программы, описанной выше). 3 Программа с использованием пользовательской формы: пример 2 (счетчики, флажки) Пусть требуется создать пользовательскую форму для возведения чисел в заданную степень и для извлечения корней заданной степени (или для выполнения обеих этих операций). Для ввода числа, которое требуется возвести в степень (или извлечь из него корень), должно использоваться текстовое поле. Показатель степени (для возведения или извлечения корня) задается с помощью счетчика. Для выбора операции (возведение в степень или извлечение корня) используются флажки. Результаты должны выводиться в текстовые поля. Вычисление должно выполняться по нажатию кнопки, размещенной на пользовательской форме. Кроме того, требуется создать кнопку для закрытия пользовательской формы.
|