виде таблицы. Внешний вид формы после выбора флажков и переключателей показан на рис. 12.
Рис. 12. Внешний вид формы
Зададим свойства Caption и Font для всех объектов, свойство Value для первого переключателя в группе «Пол» должно иметь значение True (один из переключателей обязательно должен быть выбран).
Теперь нужно написать процедуру обработки события Click для кнопки.
Private Sub CommandButton1_Click() |
|
||
Dim i As Byte, s As String |
|
|
|
Range(“A1:C10”).Clear |
‘очищаем ячейки листа Excel |
||
Cells(1, 1) = “Увлечения” |
|
|
|
i = 2 |
‘номер строки |
|
|
If CheckBox1.Value = True Then |
‘проверяем первый флажок |
||
Cells(i, 1) = CheckBox1.Caption ‘выводим название увлечения |
|||
i = i + 1 |
‘увеличиваем номер строки |
||
End If |
|
|
|
If CheckBox2.Value = True Then |
‘проверяем второй флажок |
||
Cells(i, 1) = CheckBox2.Caption |
|
||
i = i + 1 |
|
|
|
End If
If CheckBox3.Value = True Then Cells(i, 1) = CheckBox3.Caption i = i + 1
End If
If CheckBox4.Value = True Then Cells(i, 1) = CheckBox4.Caption i = i + 1
26
End If
If CheckBox5.Value = True Then
Cells(i, 1) = CheckBox5.Caption i = i + 1
End If
If CheckBox6.Value = True Then
Cells(i, 1) = CheckBox6.Caption i = i + 1
End If
Cells(1, 2) = “Образование”
If OptionButton1.Value = True Then s = OptionButton1.Caption If OptionButton2.Value = True Then s = OptionButton2.Caption If OptionButton3.Value = True Then s = OptionButton3.Caption Cells(2, 2) = s
Cells(1, 3) = “Пол”
If OptionButton4.Value = True Then Cells(2, 3) = “М”
Else
Cells(2, 3) = “Ж” End If
End Sub
В результате работы данной программы получим таблицу, показанную на рис. 13.
Рис. 13. Результат работы программы
На рабочем листе «Товары» составлена таблица с данными о товарах (рис. 14) и расположена кнопка «Запуск» для открытия формы.
27
Рис. 14. Фрагмент листа «Товары»
На форме расположены: поле со списком для выбора товара, метка для вывода цены товара, поле для ввода количества, рамка и два переключателя для выбора вида оплаты (один из них включен), рамка и два флажка для выбора услуг, кнопка «Заказать», метки с пояснительным текстом. Вычислить стоимость каждого выбранного товара с учетом вида оплаты (при безналичном расчете стоимость товара увеличивается на 2 %) и общую сумму заказа, вывести на рабочий лист «Заказ» таблицу о заказах. Внешний вид формы после ввода данных показан на рис. 15.
Рис. 15. Внешний вид формы
Dim i As Byte, sum As Double |
‘глобальные переменные |
_______________________________________________________________________________________________________
Private Sub UserForm_Activate()
Sheets(“Товары”).Select For i = 2 To 6
ComboBox1.AddItem Cells(i, 1) ‘формируем список товаров Next i
Sheets(“Заказ”).Select
‘очищаем нужный диапазон ячеек рабочего листа
28
Range(Cells(2, 1), Cells(20, 7)).Clear ‘выводим заголовки столбцов таблицы
Cells(1, 1) = “Наименование” Cells(1, 2) = “Цена”
Cells(1, 3) = “Количество”
Cells(1, 4) = “Стоимость”
Cells(1, 5) = “С учетом вида оплаты”
Cells(1, 6) = “Доставка”
Cells(1, 7) = “Установка”
i = 2 ‘начальное значение номера строки для вывода товаров sum = 0 ‘начальное значение итоговой суммы
End Sub
_______________________________________________________________________________________________________
Private Sub CommandButton1_Click()
Dim c As Double, k As Integer, st As Double
Dim stv As Double, n As Byte, t As String, v As Double
Sheets(“Товары”).Select |
|
n = ComboBox1.ListIndex + 2 |
‘номер выбранного товара |
‘считываем соответствующее название и цену товара с листа t = Cells(n, 1)
c = Cells(n, 2)
‘выводим на форму цену товара
Label3.Caption = “Цена ” & c & “ руб.”
k = TextBox1.Text ‘считываем количество из поля ‘проверяем вид оплаты и устанавливаем коэффициент
If OptionButton1.Value = True Then v = 1 Else v = 1.02
st = c * k |
‘вычисляем стоимость товара |
|
stv = st * v |
‘стоимость товара с учетом вида оплаты |
|
Sheets(“Заказ”).Select |
|
|
Cells(i, 1) = t |
‘выводим данные в таблицу на рабочем листе |
|
Cells(i, 2) = c |
|
|
Cells(i, 3) = k |
|
|
Cells(i, 4) = st |
|
|
Cells(i, 5) = stv |
|
|
If CheckBox1.Value = True Then |
‘проверяем услуги |
|
Cells(i, 6) = “Доставка” |
|
|
Else |
|
|
Cells(i, 6) = “–”
End If
29
If CheckBox2.Value = True Then
Cells(i, 7) = “Установка”
Else |
|
Cells(i, 7) = “–” |
|
End If |
|
i = i + 1 |
‘увеличиваем номер строки на 1 |
sum = sum + stv |
‘вычисляем итоговую сумму |
Cells(i, 4) = “Итого:”
Cells(i, 5) = sum
End Sub
Программный код кнопки «Запуск» на рабочем листе Excel.
Private Sub CommandButton1_Click() UserForm1.Show
End Sub
Фрагмент рабочего листа «Заказ» после работы с программой показан на рис. 16.
Рис. 16. Фрагмент листа «Заказ» после работы программы
На форме расположены кнопка «Заполнить», заполняющая на первом рабочем листе Excel таблицу из N целых случайных чисел в диапазоне [–10; 10], поле для ввода числа
N, кнопка «Вычислить», вычисляющая сумму чисел и максимальное из них, и метки для вывода результатов.
Рис. 17. Внешний вид формы
30