
Private Sub ListBox1_Change()
Select Case ListBox1.ListIndex
Case 0
Me.BackColor = vbYellow
Case 1
Me.BackColor = vbGreen
Case 2
Me.BackColor = vbRed
End Select
End Sub
Private Sub UserForm_Initialize()
ListBox1.AddItem "Желтый"
ListBox1.AddItem "Зеленый"
ListBox1.AddItem "Красный"
'ListBox1.ListIndex = 0
End Sub
В завершение разберем следующий пример:
Дана функция F(x)=2x-sin(x)-0,5.
Ø Найти корень уравнения на интервале [-1,1],
Ø вычислить значение на интервале [-1,1] с шагом =0,1 и
Ø построить график функции


Текст программного кода приведен ниже
Function f(x As Double) As Double
f = 2 * x - Sin(2 * x) - 0.25
End Function
Private Sub CommandButton1_Click()
Dim a As Double
Dim b As Double
Dim c As Double
Dim h As Double
Dim x As Double
Dim y As Double
a = CDbl(TextBox1.Text)
b = CDbl(TextBox2.Text)
h = CDbl(TextBox4.Text)
eps = 0.0001
If OptionButton1.Value = True Then
Do While Abs(b - a) > eps
c = (a + b) / 2
If f(a) * f(c) > 0 Then
a = c
Else
b = c
End If
Loop
c = (a + b) / 2
Label3.Caption = "Результат" & Chr(13) & _
"Значение корня = " & c
'TextBox3.Text = c
Label3.Visible = True
End If
If OptionButton2.Value = True Then
x = a: i = 0
Do While x <= b
y = f(x)
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "30;40"
ListBox1.AddItem x
ListBox1.List(i, 1) = y
i = i + 1
x = x + h
Loop
ListBox1.Visible = True
Label4.Visible = True
End If
If OptionButton3.Value = True Then
x = a: i = 1
Do While x <= b
y = f(x)
Worksheets(2).Cells(i, 1) = x
Worksheets(2).Cells(i, 2) = y
i = i + 1
x = x + h
Loop
График
End If
End Sub
Private Sub CommandButton2_Click()
Hide
End Sub
Private Sub UserForm_Initialize()
TextBox1.Text = " "
TextBox2.Text = ""
TextBox4.Text = ""
TextBox1.SetFocus
End Sub
Sub График()
'
' График Макрос
' Макрос записан 28.05.2009 (Татьяна Донец)
'
'
i = 1
While Worksheets(2).Cells(i, 1) <> ""
i = i + 1
Wend
i = i - 2
Range("A1:B" & i).Select
Charts.Add
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SetSourceData Source:=Sheets("Лист2").Range("A1:B" & i), PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист2"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "График функции"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
ЛАБОРАТОРНАЯ РАБОТА
Построение графика на листе Excel и на пользовательской форме.
Процедуры обработки ошибок
1. Построение графика на листе Excel производится через процедуру.
Пример. Построить график функции
на отрезке [a;b] с шагом h. Построение графика организовать процедурой.

‘При создании процедуры график() вначале был создан макрос в Excel, а затем полученный макрос отредактирован. В частности, первая команда в данной процедуре определяет количество заполненных строк на листе в столбце А и это значение присваивается переменной n.

2. При составлении приложений важно предусмотреть, чтобы программа анализировала возможные ошибки, возникающие при ее выполнении по вине пользователя, и информировала его об этом, подсказывая, что конкретно он сделал неправильно. При этом возможно два подхода:
· Предотвращение ошибок
· Обработка ошибок
Рассмотрим процесс создания приложения, в котором предотвращается появление ошибки на конкретном примере:
Программа производит деление числителя на знаменатель по нажатию кнопки Счет без контроля появления возможных ошибок.


Ситуация простая, но она уже таит в себе множество подводных камней. Например, пользователь забыл ввести числа в соответствующие поля или если в одно из полей пользователь введет число с десятичной запятой, а установками программы предусматривается десятичная точка и наоборот.
Такие ошибки ввода легко избежать, если производить в программе предварительную проверку. Например, это видно в следующее процедуре:

Но, если пользователь введет в поле Знаменатель 0, то произойдет аварийная остановка выполнения программы с отображением кода ошибки. (Каждая ошибка имеет свой код). В идеале разрабатываемое приложение не должно никогда аварийно прерываться. В приложении следует создать средства перехвата возможной ошибки, обработать её, выдать сообщение пользователю и обеспечить безаварийное продолжение работы приложения.
Инструкция On Error производит перехват ошибки. Устанавливает, что программа должна делать в случае появления ошибки.
Ниже приведен код программы с обработкой ошибок:


Простейшим средством предотвращения случайных ошибок является использование инструкции Option Explicit. Эта инструкция предписывает явно описывать все переменные, встречающиеся в программе.
3 Для построения графика на пользовательской форме применяется элемент управления Image (рисунок). Он используется для отображения графических файлов в формате gif, ipg,, ico. Перечислим некоторые из его свойств, используемых для управления выводом изображения.
| AutoSize | True – рисунок автоматически изменяет размер для того, чтобы отобразить изображение целиком False – в противном случае |
| Picture | Задает Изображаемый Графический Файл. Используется С Функцией Loadpicture. Синтаксис: .Picture = LoadPicture(полное имя файла), т.е. полное имя отображаемого графического файла |
| SizeMode | Устанавливает масштабирование рисунка fmPictureSizeModeClip - не помещающиеся в границах объекта части рисунка обрезаются fmPictureSizeModeStretch - так, чтобы он занимал полную поверхность объекта fmPictureSizeModeZoom - рисунок масштабируется с сохранением относительных размеров так, чтобы он помещался целиком внутри объекта |
| .PictureAlignment | Устанавливает расположение рисунка внутри объекта |
Рассмотрим предыдущий пример: Построить график функции
на отрезке [a;b] с шагом h. Построение графика организовать процедурой.



Дата добавления: 2015-09-12; просмотров: 91 | Поможем написать вашу работу | Нарушение авторских прав |