- •КОМПЬЮТЕРНЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
- •КОНСПЕКТ ЛЕКЦИЙ
- •СОДЕРЖАНИЕ
- •ВВЕДЕНИЕ
- •ТЕМА 1 КОМПЬЮТЕРНЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
- •ТЕМА 3 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЭВМ
- •ТЕМА 4 ОПЕРАЦИОННАЯ СИСТЕМА
- •ТЕМА 5 СТАНДАРТНЫЕ ПРИЛОЖЕНИЯ ОС MS WINDOWS
- •ТЕМА 7 ПРИКЛАДНЫЕ ПРОГРАММЫ
- •ТЕМА 8 ТАБЛИЧНЫЙ ПРОЦЕССОР MS EXCEL
- •ТЕМА 9 ТАБЛИЧНЫЙ ПРОЦЕССОР MS EXCEL
- •ТЕМА 10 ОСНОВЫ АЛГОРИТМИЗАЦИИ
- •ТЕМА 11 ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ VBA. ОСНОВНЫЕ ПОНЯТИЯ. МАКРОСЫ
- •ТЕМА 12 ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ VBA. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ
- •ТЕМА 13 ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ VBA. ФОРМЫ
- •ТЕМА 14 ТЕКСТОВОЙ ПРОЦЕССОР MS WORD
- •ТЕМА 15 ПРОГРАММА ПРЕЗЕНТАЦИЙ MS POWERPOINT
- •ТЕМА 16 КОМПЬЮТЕРНАЯ ГРАФИКА
- •ЛИТЕРАТУРА
ТЕМА 11
ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ VBA. ОСНОВНЫЕ ПОНЯТИЯ. МАКРОСЫ
Языки программирования. Макропрограммирование. Основы программирования на VBA (Visual Basic for Application). Макросы. Объекты,
свойства, методы
Смотреть МУ Макросы и основы программирования на VBA в
приложении MS OFFICE-EXCEL (мет. указ.).pdf
ТЕМА 12
ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ VBA. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ
Пользовательские функции. Типы данных, выражения, операторы. Тестирование и отладка, документирование программного продукта
Смотреть МУ Макросы и основы программирования на VBA в
приложении MS OFFICE-EXCEL (мет. указ.).pdf
Цель работы: изучить типовые структуры алгоритмов и способы их реализации на языке Visual Basic for Application (VBA) на примерах.
Существует три типовые структуры алгоритмов – линейная,
разветвляющаяся, циклическая. Рассмотрим три задачи, которые необходимо решить с использованием интегрированной среды программирования VBA.
Задача 1. Необходимо вычислить медианы треугольника на основе трех сторон треугольника: a, b, c.
Задача линейной структуры (не содержит ветвлений и циклов). Составим схему алгоритма:
начало |
Описание: |
|
|
|
|
|
|
||
|
необходимо ввести значения трех сторон треугольника |
|
|||||||
|
|
|
|||||||
ввод |
|
||||||||
a,b,c |
|
|
|
|
|
|
|
||
|
|
вычисление медианы, проведенной к стороне a по |
|||||||
|
|
||||||||
вычисление |
|||||||||
ma |
формуле: |
|
|
|
|
|
|
||
|
|
0,5 умножить на корень из 2b2+2c2-a2 |
|
|
|
|
|||
|
|
|
|
|
|
||||
|
|
|
|
|
|
||||
|
|
вычисление |
медианы, |
проведенной |
к |
стороне |
a |
по |
|
вычисление |
|||||||||
формуле: |
|
|
|
|
|
|
|||
mb |
|
|
|
|
|
|
|||
|
|
0,5 умножить на корень из 2a2+2c2-b2 |
|
|
|
|
|||
|
|
|
|
|
|
||||
|
|
|
|
|
|
||||
|
|
вычисление |
медианы, |
проведенной |
к |
стороне |
a |
по |
|
|
|
||||||||
вычисление |
|||||||||
формуле: |
|
|
|
|
|
|
|||
mc |
|
|
|
|
|
|
|||
0,5 умножить на корень из 2a2+2b2-c2 |
|
|
|
|
|||||
|
|
|
|
|
|
||||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
вывод |
вывод результата вычислений в ячейку, в которой была |
||||||||
med |
|||||||||
вызвана функция |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|||
конец |
|
|
|
|
|
|
|
70
Для написания функции необходимо открыть среду VBA (в Excel клавиши Alt+F11 или Сервис/ Макрос/ Редактор Visual Basic), добавить в текущую книгу модуль (Insert/ Module) и ввести текст функции:
Function med(a, b, c) Dim ma As Single Dim mb As Single Dim mc As Single
ma = 0.5 * Sqr(2 * b * b + 2 * c * c - a * a) mb = 0.5 * Sqr(2 * a * a + 2 * c * c - b * b) mc = 0.5 * Sqr(2 * b * b + 2 * a * a - c * c)
med = "медиана к a " & ma & ", медиана к b " & mb & ", медиана к c " & mc End Function
Для запуска функции, ее необходимо вызвать в ячейке листа, аналогично стандартным функциям:
=med(A1;B1;C1)
результат:
|
|
|
медиана к a 4,41588, медиана к b 3,24037, медиана к c |
2 |
4 |
5 |
1,936492 |
Задача 2. Необходимо указать номер квадранта, в котором находится точка с введенными координатами x и y.
Задача разветвляющейся структуры.
Составим схему алгоритма:
начало
ввод x, y
x>0, нет y>0
да
“1
квадр”
x<0, нет y>0
да
“2
квадр”
Описание:
необходимо ввести значения двух координат точки
проверка значения x и y, если оба положительны – вывод результата: 1 квадрант
проверка значения x и y, если y положительный, а x отрицательный
вывод результата: 2 квадрант
71
проверка значения x и y, если оба отрицательны –
x<0, нет вывод результата: 3 квадрант y<0
да
“3
квадр”
x>0, |
|
|
проверка значения x и y, если x положительный, |
||
нет а y отрицательный |
|||||
y<0 |
|
|
вывод результата: 4 квадрант |
||
да |
|||||
|
|
|
|||
|
|
|
|
|
|
“4 |
|
|
|
||
квадр” |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
конец |
|
|
|
Текст функции вводится в модуле (функции можно вводить в одном модуле или в разных модулях).
Function kv(x, y)
If x > 0 And y > 0 Then kv = "1 квадрант" If x < 0 And y > 0 Then kv = "2 квадрант" If x < 0 And y < 0 Then kv = "3 квадрант" If x > 0 And y < 0 Then kv = "4 квадрант" End Function
Для запуска функции, ее необходимо вызвать в ячейке листа, аналогично стандартным функциям:
=kv(A1;B1)
результат:
1 |
2 |
1 квадрант |
-3 |
4 |
2 квадрант |
-5 |
-2 |
3 квадрант |
2 |
-1 |
4 квадрант |
Задача 3. Необходимо вычислить сумму натуральных чисел от начального до конечного значения.
Задача циклической структуры.
Составим схему алгоритма:
72
|
начало |
|
Описание: |
|
|
|
|
необходимо ввести два значения: первое натуральное |
|
|
|
|
|
|
|
ввод |
|||
|
k, l |
|
число и второе |
|
|
|
|
|
задается начальное значение суммы |
|
s=0 |
|
||
|
|
|
|
организовывается цикл для подсчета всех значений |
|
|
|
|
|
|
|
|
|
|
|
I=k, l |
|||
|
|
между заданным диапазоном |
||
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
s=s+i |
|
наращивание суммы на величину текущего значения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вывод |
вывод результата вычислений в ячейку, в которой была |
|
sum=s |
||
вызвана функция |
|
|
|
|
|
|
|
|
конец |
|
Текст функции вводится в модуле (функции можно вводить в одном модуле или в разных модулях).
Function sum(k, l) Dim i As Integer Dim s As Single s = 0
For i = k To l s = s + i Next
sum = "сумма чисел -" & s End Function
Для запуска функции, ее необходимо вызвать в ячейке листа, аналогично стандартным функциям:
=sum(A1;B1)
|
результат: |
|
|
|
|
|
сумма чисел |
5 |
|
10 |
-45 |
|
|
|
сумма чисел |
1 |
|
3 |
-6 |
73