Dim Независимая As String
Dim Зависимая As String
Dim Повторения As String
Dim НезависимаяЗависимая As Object
Dim Корреляция As Double
Dim m As Double
Dim b As Double
Нажатие кнопки ОК запускает на выполнение процедуру CommandButton1_Click(). При выборе переключателя с повторениями производится расчёт по процедуре ТрендсПовторениями, а при выборе переключателя Без повторений – по процедуре Обычныйтренд (первая задача).
Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
Обычныйтренд
End If
If OptionButton2.Value = True Then
ТрендсПовторениями
End If
End Sub
Нажатие кнопки Отмена запускает на выполнение процедуру CommandButton2_Click(), которая закрывает диалоговое окно.
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Процедуры OptionButton1_Click() и OptionButton2_Click() обеспечивают скрытие и отображение в диалоговом окне надписи Повторения и соответствующего поля.
Private Sub OptionButton1_Click()
RefEdit3.Visible = False
Label3.Visible = False
End Sub
Private Sub OptionButton2_Click()
RefEdit3.Visible = True
Label3.Visible = True
End Sub
Процедура UserForm_Initialize() активизирует диалоговое окно. В начальном состоянии выбран переключатель Без повторений.
Private Sub UserForm_Initialize()
MultiPage1.Value = 0
CommandButton2.Cancel = True
RefEdit3.Visible = False
Label3.Visible = False
OptionButton1.Value = True
UserForm1.Show
End Sub
Далее записывается процедура Обычныйтренд(). В поля Независимая величина (температура) и Зависимая величина (объём продаж) вводятся ссылки на диапазоны, по которым строится линия тренда. На рабочий лист вводятся фунции рабочего листа НАКЛОН, ОТРЕЗОК и КОРРЕЛ, по которым вычисляются параметры линии тренда и коэффициент корреляции. При помощи процедуры Диаграмма строится диаграмма и линия тренда.
Sub Обычныйтренд()
Независимая = RefEdit1.Value
Зависимая = RefEdit2.Value
Range("D1").FormulaLocal = "=ОТРЕЗОК(" & Зависимая & ";" & Независимая & ")"
Range("D2").FormulaLocal = "=НАКЛОН(" & Зависимая & ";" & Независимая & ")"
Range("D3").FormulaLocal = "=КОРРЕЛ(" & Зависимая & ";" & Независимая & ")"
b = Range("D1").Value
m = Range("D2").Value
Корреляция = Range("D3").Value
TextBox1.Text = CStr(b)
TextBox2.Text = CStr(m)
TextBox3.Text = CStr(Корреляция)
Set НезависимаяЗависимая = _
Application.Union(Range(Независимая), Range(Зависимая))
Диаграмма НезависимаяЗависимая