Программа расчета случайных чисел и построения диаграммы
Еще один пример программирования на языке VBA – расчет заданного количества случайных чисел в заданном диапазоне показан на рисунке 1.5. Задача дополнена их графическим отображением, поиском минимального и максимального значений среди этих чисел, и расчетом .
Рис. 1.5. Расчет случайных чисел в заданном диапазоне
Текст главной программы написан для события листа Change, расчет случайных чисел – процедура с именем Расчет, построение диаграммы – процедура с именем График:
Private Sub Worksheet_Change(ByVal Target As Range) Adr = Target.Address
If Adr = "$A$4" Or Adr = "$B$4" Or Adr = "$C$4" Then
' если изменялись данные в ячейках A4 или B4
ActiveSheet.Unprotect
Call Расчет
Call График [A4].Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True End If
End Sub
'------- далее общая процедура в секции General -----
Sub Расчет()
n = [C4]
' количество чисел
adr2 = "A6:A" & (5 + n)
' определяем диапазон для чисел, количество которых=C4
Randomize
Range("A6:A105").ClearContents
' очищаем старые значения
Range("A6:A105").NumberFormat = "0.0000"
' задаем формат For I = 1 To n
' цикл вычисления случайных чисел
Adr = "A" & I + 5
Range(Adr).Value = [B4] - ([B4] - [A4]) * Rnd
' случайное число в диапазоне от A4 до B4
Next
xmin = [A6] xmax = [A6]
For I = 1 To n
' цикл поиска минимума и максимума
Adr = "A" & I + 5
xt = Range(Adr).Value
If xt < xmin Then xmin = xt If xt > xmax Then xmax = xt
Next
[D4] = xmin [E4] = xmax
For I = 1 To n ' цикл расчета Y Adr1 = "A" & I + 5
Adr2 = "B" & I + 5
Range(Adr2).Value = (Range(Adr1).Value) / xmax Next
End Sub
|
|
Sub График() ActiveSheet.Unprotect
If ActiveSheet.Shapes.Count > 0 Then
' удаляем старый график
ActiveSheet.ChartObjects("Grafik").Activate ActiveChart.Parent.Delete
End If
Rng = "A6:A" & (5 + [C4])
' диапазон исходных данных
ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select ActiveChart.SetSourceData Source:=Range(Rng) ActiveChart.ChartTitle.Select
ActiveChart.ChartTitle.Text = "Случайные числа" ActiveChart.Parent.Name = "Grafik" ActiveChart.Axes(xlValue).Select Selection.TickLabels.NumberFormat = "0" ActiveSheet.Shapes("Grafik").Left = 120 ActiveSheet.Shapes("Grafik").Top = 80 ActiveSheet.Shapes("Grafik").Width = 300 ActiveChart.Axes(xlValue).HasTitle = True ActiveChart.Axes(xlValue, xlPrimary). _
AxisTitle.Text = "Y" ActiveChart.SetElement _
(msoElementPrimaryValueAxisTitleHorizontal) ActiveChart.Axes(xlCategory).HasTitle = True ActiveChart.Axes(xlCategory, xlPrimary). _
AxisTitle.Text = "X" ActiveChart.Legend.Select Selection.Delete
End Sub
Текст программ должен быть достаточно понятен для студентов, ранее изучавших язык Basic и понимающих принципы работы с объектами.
Учебное задание
1) Создать новый файл Excel с поддержкой макросов. Запустить запись макроса для данного документа, в ячейку A1 занести число 1,11; в ячейку B1 занести число 2,22; в ячейке C1 записать формулу =A1*B1. Остановить запись макроса. Изучить его текст в окне Microsoft Visual Basic For Applications, скопировать его текст на лист Excel. Модифицировать макрос для работы с любой начальной ячейкой.
2) Двумя способами (с использованием Проверки данных и с написанием VBA-программы) выполнить проверку правильности ввода (выполнить вариант в таблице, соответствующий номеру компьютера):
|
|
Вариант № | Расчетная формула | Условия проверки |
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 |
3) Для заданного количества n случайных чисел, написать программу на языке VBA для вычисления по заданной формуле (выполнить вариант, соответствующий номеру компьютера):
1 | |
2 | |
3 | - максимальные и минимальные значения |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 |
Лабораторная работа № 7
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ VBA В MICROSOFT OFFICE ACCESS
I. Цель работы: освоение работы с языком VBA и библиотекой ADO при работе с базами данных в системе Access.
Дата добавления: 2018-02-18; просмотров: 1408; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!