Упражнение 3. Создание сложной формы для вычисления выбранного арифметического действия к выделенным числам
1. В редакторе VBA разработать пользовательскую форму, показанную на рисунке 43, где для изображения: ü чисел используется элемент Список (ListBox); ü Вычислить, Отмена – элемент Кнопка (CommandButton); ü Операция – элемент Рамка (Frame); ü Сумма, Произведение, Среднее - элемент Переключатель (OptionButton); ü Результат - элемент Надпись (Label); ü для отображения вычисляемого значения – элемент TextBox (Текстовое поле). 2. На кнопку «Вычислить» введите следующую программу: Private Sub CommandButton1_Click() Dim i As Integer Dim n As Integer Dim Сумма As Double Dim Произведение As Double Dim Среднее As Double Dim Результат As Double If OptionButton1.Value = True Then Сумма = 0 With ListBox1 For i = 0 To.ListCount - 1 If.Selected(i) = True Then Сумма = Сумма +.List(i) End If Next i End With Результат = Сумма End If If OptionButton2.Value = True Then Произведение = 1 With ListBox1 For i = 0 To.ListCount - 1 If.Selected(i) = True Then Произведение = Произведение *.List(i) End If Next i End With Результат = Произведение End If If OptionButton3.Value = True Then Среднее = 0 n = 0 With ListBox1 For i = 0 To.ListCount - 1 If.Selected(i) = True Then n = n + 1 Среднее = Среднее +.List(i) End If Next i End With Результат = Среднее / n End If TextBox1.Text = CStr(Format(Результат, " Fixed")) End Sub 3. Для кнопки «Отмена» напишите следующую процедуру: Private Sub CommandButton2_Click() UserForm1.Hide End Sub 4. Для инициализации формы введите следующую процедуру: Private Sub UserForm_Initialize() With ListBox1 .List = Array(1, 2, 3, 4, 5, 6, 7, 8, 10) .ListIndex = 0 .MultiSelect = fmMultiSelectMulti End With TextBox1.Enabled = False End Sub 5. Запустите проект на выполнение. При этом в группе Операция следует установить один из переключателей: Сумма, Произведение или Среднее, чтобы указать, какая операция будет выполняться над выбранными числами. Нажатие кнопки «Вычислить» должно привести к выполнению операции и выводу результата в поле Результат. Упражнение 4. Разработка приложения, которое будет содержать пользовательскую форму для ввода названия организации и выбора её типа и вывода данных на рабочий лист, показанную на рисунке 44. Рисунок 44. Пользовательская форма 1. Откройте рабочую книгу и нажмите комбинацию клавиш < Alt+F11> для запуска VBA; 2. Выберите вкладку Insert – UserForm, чтобы запустить пустое диалоговое окно; 3. Свойства Caption объекта UserForm будет иметь значение по умолчанию – UserForm1. Воспользуйтесь окном Свойств (Properties) для того, чтобы изменить значение свойства Caption на “Вывод названия организации” (если окно Свойств (Properties) не отображается на экране, нажмите клавишу < F4>); 4. Создайте форму пользователя и разместите на ней элементы управления, как показано на рис. 6.4; Дважды щелкните по кнопке «Отмена» и введите следующую процедуру: Private Sub CommandButton1_Click() ‘начало процедуры Unload UserForm1 ‘закрытие формы End Sub ‘конец процедуры 5. Данная процедура выполняется после щелчка пользователем по кнопке «Отмена». Она вызывает выгрузку формы UserForm из памяти; 6. Нажмите комбинацию клавиш < Shift+F7>, чтобы повторно отобразить объект UserForm1; 7. Дважды щелкните по кнопке «Ok» и введите следующую процедуру: Private Sub CommandButton1_Click() ‘начало процедуры Sheets(" Лист1").Activate ‘активизация рабочего листа (связь с рабочим листом) NextRow = _ Application.WorksheetFunction.CountA(Range(" A: A")) + 1 ‘определение пустой строки в рабочем листе, здесь Count (функция СЧЕТ), Range(" A: A")) + 1 - выделяет диапазон ячеек, начиная с ячейки А1 с шагом +1
Cells(NextRow, 1) = TextBox1.Text ‘передача имени If OptionButton1 Then Cells(NextRow, 2) = " Фирма" If OptionButton2 Then Cells(NextRow, 2) = " Корпорация" If OptionButton3 Then Cells(NextRow, 2) = " Частное предприятие" ‘проверка условия TextBox1.Text = " " 'Очистка элементов управления для следующих записей OptionUnknown = True TextBox1.SetFocus If TextBox1.Text = " " Then MsgBox " Введите название организации." TextBox1.SetFocus Exit Sub End If 'Проверка введения имени End Sub 8. Перейдите на рабочий лист MS Excel и поместите элемент управления Кнопка панели элементов Visual Basic, после чего появиться диалоговое окно «Назначить макрос объекту», выберите вкладку «Создать». В окне модуля введите код: Sub Кнопка1_Щелкнуть() ‘начало процедуры UserForm1.Show ‘открытие формы End Sub ‘конец процедуры Поместите на ней надпись «Нажать» (рис. 45). С помощью этой кнопки будет вызываться разрабатываемое диалоговое окно, показанное на рисунке 44. Рисунок 45. Законченный вид рабочего листа
9. Запустите проект и поверьте его на выполнение.
|