End Sub
_______________________________________________________________________________________________________
Private Sub ToggleButton2_Change() |
|
If ToggleButton2.Value = True Then |
|
Image2.Left = Image2.Left – 10 |
‘смещаем рисунок влево |
Else |
|
Image2.Left = Image2.Left + 10 |
‘возвращаем обратно |
End If |
|
End Sub
_______________________________________________________________________________________________________
Private Sub ToggleButton3_Change() |
|
If ToggleButton3.Value = True Then |
|
Label1.BackColor = RGB(255, 0, 0) |
‘красный цвет |
Else |
|
Label1.BackColor = RGB(255, 255, 255) |
‘белый цвет |
End If |
|
End Sub
_______________________________________________________________________________________________________
Private Sub ToggleButton4_Change()
If ToggleButton4.Value = True Then
Label2.Font.Size = 14 |
‘размер шрифта 14 |
Else |
|
Label2.Font.Size = 10 |
‘размер шрифта 10 |
End If |
|
End Sub |
|
На форме расположены шесть кнопок для выполнения следующих действий:
«Вычислить» – вычисление значений функции y = sinx на отрезке [–2; 2] с шагом 0,3 и вывод их на рабочий лист «Таблица»;
«Формат ячеек» – форматирование таблицы;
«Очистить» – удаление таблицы;
«График» – построение графика функции на отдельном листе с именем «График»;
«Формат графика» – форматирование диаграммы;
«Удалить» – удаление листа с графиком.
Внешний вид формы показан на рис. 22.
36
Рис. 22. Внешний вид формы
Напишем процедуру обработки события Click для первой кнопки.
Private Sub CommandButton1_Click() |
‘кнопка «Вычислить» |
|
Dim x As Single, y As Single, i As Byte |
|
|
Sheets(“Таблица”).Select |
|
|
Cells(1, 1) = “x” |
‘выводим заголовок таблицы |
|
Cells(1, 2) = “y” |
|
|
i = 2 |
‘счетчик номеров строк |
|
For x = –2 To 2 Step 0.3 ‘задаем значения аргумента функции
y = sin(x) |
‘вычисляем значение функции |
Cells(i, 1) = x |
‘выводим на лист таблицу значений |
Cells(i, 2) = y |
‘х и у |
i = i + 1 |
‘увеличиваем счетчик строк |
Next x |
|
End Sub |
|
Запишем макрос, выполняющий форматирование таблицы, и скопируем его команды в процедуру кнопки «Формат ячеек». Процедура может выглядеть следующим образом.
Private Sub CommandButton2_Click() |
|
Sheets(“Таблица”).Select |
‘выделяем лист |
Range(“A1:B15”).Select |
‘выделяем ячейки |
With Selection.Borders(xlEdgeLeft) |
‘левая граница |
.LineStyle = xlContinuous |
|
End With |
|
With Selection.Borders(xlEdgeTop) |
‘верхняя граница |
.LineStyle = xlContinuous |
|
End With |
|
37 |
|
With Selection.Borders(xlEdgeBottom) |
‘нижняя граница |
.LineStyle = xlContinuous |
|
End With |
|
With Selection.Borders(xlEdgeRight) |
‘правая граница |
.LineStyle = xlContinuous |
|
End With |
|
With Selection.Borders(xlInsideVertical) |
‘вертикальная сетка |
.LineStyle = xlContinuous |
|
End With
With Selection.Borders(xlInsideHorizontal) ‘горизонтальная
.LineStyle = xlContinuous |
|
End With |
|
Range(“A1:B1”).Select |
‘выделяем заголовок таблицы |
‘горизонтальное и вертикальное выравнивание – по центру
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With |
|
Selection.Font.Bold = True |
‘полужирное начертание |
With Selection.Interior |
‘цвет и тип заливки |
.ColorIndex = 6 |
|
.Pattern = xlSolid |
|
End With |
|
With Selection.Font |
‘шрифт и размер шрифта |
.Name = “Arial Cyr” |
|
.Size = 14 |
|
End With |
|
End Sub |
|
Аналогично создадим процедуры для остальных кнопок.
Private Sub CommandButton3_Click() ‘кнопка «Очистить»
Sheets(“Таблица”).Select |
‘выделяем лист |
Range(“A1:B15”).Clear |
‘очищаем ячейки |
End Sub |
|
_______________________________________________________________________________________________________
Private Sub CommandButton4_Click() ‘кнопка «График» Sheets(“Таблица”).Select
Range(“A1:B15”).Select
Charts.Add ‘добавляем диаграмму
38
‘тип диаграммы – точечная, без маркеров
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers ‘диапазон данных
ActiveChart.SetSourceData Source:=Sheets(“Таблица”) _
.Range(“A1:B15”), PlotBy:=xlColumns ‘расположение диаграммы – новый лист “График”
ActiveChart.Location Where:=xlLocationAsNewSheet, _
Name:= “График” |
|
With ActiveChart |
|
.HasTitle = True ‘наличие заголовка |
|
.ChartTitle.Characters.Text = “y=sin(x)” |
‘текст заголовка |
‘подписываем ось категорий (Ох) |
|
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = “x” ‘подписываем ось значений (Оу)
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = “y” End With
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = True |
‘линии сетки по оси категорий |
End With |
|
With ActiveChart.Axes(xlValue) |
|
.HasMajorGridlines = True |
‘линии сетки по оси значений |
End With |
|
ActiveChart.HasLegend = False |
‘убираем легенду |
End Sub
_______________________________________________________________________________________________________
Private Sub CommandButton5_Click() ‘кнопка «Формат графика»
Sheets(“График”).Select |
|
|
ActiveChart.PlotArea.Select |
‘выделили область построения |
|
With Selection.Border |
‘параметры границы |
|
.ColorIndex = 16 |
‘цвет |
|
.LineStyle = xlContinuous |
‘тип линии |
|
End With |
|
|
Selection.Interior.ColorIndex = xlNone |
‘убрали заливку |
|
ActiveChart.SeriesCollection(1).Select |
‘выделили ряд данных |
|
With Selection.Border |
|
|
.ColorIndex = 57 |
‘цвет линии |
|
.Weight = xlThick |
‘толщина линии |
|
39
.LineStyle = xlContinuous |
‘стиль линии |
||
End With |
|
|
|
ActiveChart.Axes(xlCategory).Select |
‘выделили ось категорий |
||
With Selection.Border |
|
|
‘форматируем линию оси |
.ColorIndex = 57 |
|
|
|
.Weight = xlMedium |
|
|
|
.LineStyle = xlContinuous |
|
|
|
End With |
|
|
|
With Selection |
|
|
|
.MajorTickMark = xlOutside |
|
‘основные метки по оси |
|
.MinorTickMark = xlNone |
‘убрать промежуточные метки |
||
.TickLabelPosition = xlNextToAxis |
‘положение метки |
||
End With |
|
|
|
With ActiveChart.Axes(xlCategory) |
|
||
.MinimumScale = –2 |
‘минимальное значение |
||
.MaximumScale = 2 |
‘максимальное значение |
||
End With |
|
|
|
ActiveChart.Axes(xlValue).Select |
‘выделили ось значений |
||
With Selection.Border |
|
|
‘форматируем линию оси |
.ColorIndex = 57 |
|
|
|
.Weight = xlMedium |
|
|
|
.LineStyle = xlContinuous |
|
|
|
End With |
|
|
|
ActiveChart.ChartTitle.Select |
‘выделили заголовок диаграммы |
||
Selection.Font.Bold = True |
|
‘полужирное начертание |
|
With Selection.Font |
|
|
|
.Name = “Arial Cyr” |
|
‘шрифт |
|
.Size = 14 |
|
‘размер шрифта |
|
End With |
|
|
|
ActiveChart.Deselect |
|
‘снять выделение с диаграммы |
|
End Sub
_______________________________________________________________________________________________________
Private Sub CommandButton6_Click() |
‘кнопка «Удалить» |
|
Sheets(“График”).Select |
‘выделили лист с диаграммой |
|
ActiveWindow.SelectedSheets.Delete |
‘удалили лист |
|
End Sub |
|
|
40