Создание UserForm для вычисления корней квадратного уравнения
a x2 +b x + c = 0
Объект |
Свойство Name |
Свойство Caption |
UserForm |
UserFormSqr |
Квадратное уравнение |
TextBox |
TextA |
- |
TextBox |
TextB |
- |
TextBox |
TextC |
- |
TextBox |
TextX1 |
- |
TextBox |
TextX2 |
- |
Label |
Label1 |
a |
Label |
Label2 |
b |
Label |
Label3 |
c |
Label |
LabelX1 |
X1 |
Label |
LabelX2 |
X2 |
CommandButton |
CmdOk |
Найти |
CommandButton |
CmdExit |
Выход |
В приведенном ниже коде выполняются следующие действия:
- с помощью функции IsNumeric(TextBox) проверяется введены ли в соответствующие поля значения параметров a, b, c. Функция IsNumeric(TextBox) принимает значение True, если введено какое-либо число;
- вычисляется дискриминант d;
- если d>=0, то вычисленные значения корней печатаются в поля TextX1 иTextX2;
- если d<0, то скрываются поля TextX1 иTextX2 (свойство Visible = false), и устанавливается свойство метки LabelX1.Caption = "no solution".
Private Sub CmdOk_Click()
'Текст кода к UserFormSqr -решение квадратного уравнения
Dim a As Double
Dim b As Double
Dim c As Double
Dim d As Double 'дискриминат
Dim x1 As Variant
Dim x2 As Variant
If IsNumeric(TextA) And IsNumeric(TextB) And IsNumeric(TextC) Then
a = CDbl(TextA)
b = CDbl(TextB)
c = CDbl(TextC)
d = b ^ 2 - 4 * a * c
If d > 0 Then
TextX1.Visible = True
TextX2.Visible = True
LabelX1.Caption = "x1"
LabelX2.Caption = "x2"
x1 = (-b + d ^ 0.5) / 2 / a
x2 = (-b - d ^ 0.5) / 2 / a
TextX1 = x1
TextX2 = x2
Else
TextX1.Visible = False
TextX2.Visible = False
LabelX1.Caption = "no solution"
LabelX2.Caption = " "
End If
Else
MsgBox " ВВедите значения a, d и c"
End If
End Sub
Private Sub CmdExit_Click()
‘Закрытие UserForfSqr
Unload Me
End Sub
На рабочем листе создать кнопку (свойство Name – CmdSqr, свойство Caption –Решение квадратного уравнения) со следующим кодом:
Private Sub CmdSqr_Click()
UserFormSqr.Caption = "Квадратное уравнение"
UserFormSqr.Show
End Sub
Выбор максимального или минимального из 3-х чисел.
Объект |
Свойство Name |
Свойство Caption |
UserForm |
UserFormMax |
Максимум или минимум |
TextBox |
TextA |
- |
TextBox |
TextB |
- |
TextBox |
TextC |
- |
TextBox |
TextRez |
- |
Label |
Label1 |
a |
Label |
Label2 |
b |
Label |
Label3 |
c |
Label |
Label4 |
Результат |
CommandButton |
CmdOk |
Найти |
OptionButton |
OptMax |
МАксимум |
OptionButton |
OptMin |
Минимум |
Private Sub CommandButton1_Click()
Dim a As Double
Dim b As Double
Dim c As Double, max As Double, min As Double
If IsNumeric(TextA) And IsNumeric(TextB) And IsNumeric(TextC) Then
a = TextA
b = TextB
c = TextC
If OptMax.Value = True Then
max = a
If max < b Then max = b
If max < c Then max = c
TextRez = max
Label4.Caption = "Максимум"
End If
If OptMin.Value = True Then
min = a
If min > b Then min = b
If min > c Then min = c
TextRez = min
Label4.Caption = "Максимум"
End If
End If
End Sub
Изменение цвета фона UserForm и кнопки на рабочем листе, открывающем эту UserForm.
Здесь будет использовано правило формирования цвета RGB, согласно которому на каждый из основных цветов (красный, зеленый, голубой) отводится 1 байт, то есть от 0 до 255 различных оттенков каждого цвета. Для формирования оттенок будем использовать элементы ScrollBar (полоса прокрутки).
При перемещении движка на полосах прокрутки будет, во-первых, меняться цвет фона UserForm, во-вторых, фиксироваться цифровой код оттенка, в-третьих, изменяться цвет фона кнопки на рабочем листе, связанной с данной формой.
Для вызова этой UserForm на рабочем листе Формы создать кнопку ( свойство Name- CmdColor). Код этой кнопки:
Private Sub CmdColor_Click()
UserFormColor.Show
End Sub
Объект |
Свойство Name |
Свойство Caption |
Свойство Max |
Свойство BackColor |
UserForm |
UserFormColor |
Цвет |
- |
- |
ScrollBar |
ScrollBarREd |
- |
255 |
Red |
ScrollBar |
ScrollBarGreen |
- |
255 |
Green |
ScrollBar |
ScrollBarBlue |
- |
255 |
Blue |
TextBox |
TextRed |
- |
- |
- |
TextBox |
TextGreen |
- |
- |
- |
TextBox |
TextBlue |
- |
- |
- |
Label |
Label1 |
Red |
- |
- |
Label |
Label2 |
Green |
- |
- |
Label |
Label3 |
Blue |
- |
- |
Private Sub ScrollBarBlue_Change()
UserFormColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
Textblue.Text = CStr(ScrollBarBlue)
Sheets("Формы").CmdColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
End Sub
Private Sub ScrollBarGreen_Change()
UserFormColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
TextGreen.Text = CStr(ScrollBarGreen)
Sheets("Формы").CmdColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
End Sub
Private Sub ScrollBarRed_Change()
UserFormColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
TextRed.Text = CStr(ScrollBarRed)
Sheets("Формы").CmdColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
End Sub
Private Sub Textblue_Change()
Dim blue As Byte
If Not IsNumeric(Textblue) Then Textblue = 0
blue = Textblue
ScrollBarBlue.Value = blue
UserFormColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
End Sub
Private Sub TextGreen_Change()
Dim green As Byte
If Not IsNumeric(TextGreen) Then TextGreen = 0
green = TextGreen
ScrollBarGreen.Value = green
UserFormColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
End Sub
'Private Sub TextRed_Change()
'Dim red As Byte
'If Not IsNumeric(TextRed) Then TextRed = 0
'red = TextRed
'ScrollBarRed.Value = red
'UserFormColor.BackColor = RGB(ScrollBarRed, ScrollBarGreen, ScrollBarBlue)
'End Sub
Private Sub UserForm_Initialize()
TextRed = 255
Label1.BackColor = RGB(255, 0, 0)
Textblue = 255
Label2.BackColor = RGB(0, 255, 0)
TextGreen = 255
Label3.BackColor = RGB(0, 0, 255)
End Sub
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.