Создание UserForm для вычисления корней квадратного уравнения

Страницы работы

Содержание работы

Создание 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

Похожие материалы

Информация о работе