- •Информатика Сборник лабораторных работ по программированию в среде Visual Basic for Applications
- •Содержание
- •Введение
- •Лабораторная работа №1. Vba. Основные понятия. Среда разработки. Основы пРоГраммирования. Переменные
- •Среда программирования vba
- •Основы программирования на vba
- •Переменные
- •Математические операторы
- •Лабораторная работа №2. Диалоговые окна
- •Контрольные вопросы
- •Лабораторная работа № 3. Разветвляющиеся алгоритмы
- •1. Операторы условия if...Then
- •1.1 Строчный оператор If…Then…Else
- •1.2 Блочный условный оператор
- •1.3 Вложенные операторы If
- •1.4 Логические операции
- •2. Безусловный переход GoTo
- •3. Оператор выбора – переключатель
- •5. Задачи для самостоятельного решения!
- •Лабораторная работа № 4. Циклы со счетчиком
- •Лабораторная работа № 5. Циклы с условием
- •1. Циклы с предусловием
- •2. Цикл с постусловием
- •3. Цикл For Each … Next
- •4. Задания к лабораторной работе
- •5. Контрольные вопросы
- •Лабораторная работа № 6. Работа с формами. Создание интерактивных программ.
- •Примеры создания программ для работы с объектами окна диалога
- •Кнопка на рабочем листе создается с помощью Панели инструментов Формы (Элементы управления). Макрос назначается двойным щелчком левой кнопки мыши или с помощью контекстного меню.
- •Варианты для самостоятельных работ:
- •Литература
2. Безусловный переход GoTo
Позволяет изменить порядок выполнения команд. Задает безусловный переход на указанную строку внутри той процедуры, в которой она находится.
Синтаксис:
GoTo идентификатор
Обязательный параметр идентификатор может быть любой меткой строки или номером строки. Метки строки – это строка программы, в которой указывается имя метки и двоеточие (:). Метки должны иметь уникальные имена в пределах одной процедуры. Например:
Мет1: к = к+1 ` Метка строки Мет1
Оператор перехода на метку Мет1 будет иметь вид:
GoTo Мет1
ВЫПОЛНИТЕ!
Задание 4. Даны действительные числа х, у. Составить пользовательскую функцию.
y*x
, если и x>0,
и y>0
Z = |x+y| , если и x<0, и y<0
0 , в остальных случаях.
Блок-схема.
Да
Нет
Да
Нет
Программа с использованием блочной структуры оператора If:
Function z(x, y)
If x > 0 And y > 0 Then
z = y * x
ElseIf x < 0 And y < 0 Then
z = Abs(x + y)
Else
z = 0
End If
End Function
Другой вариант программы с использованием оператора GoTo:
Function zz(x, y)
If x > 0 And y > 0 Then zz = y * x : GoTo kon
If x < 0 And y < 0 Then zz = Abs(x + y) : GoTo kon
zz = 0
kon: End Function
Введя значения «х» и «у» в ячейки рабочего листа ЭТ, получим результаты работы программы:
x |
y |
z |
104 |
5 |
520 |
-8 |
-14 |
22 |
67 |
-1 |
0 |
-5 |
12,5 |
0 |
3. Оператор выбора – переключатель
Структура Select Case похожа на структуру If…Then…Else, но она более эффективна в том случае, когда в зависимости от значения анализируемого выражения, выбирается и выполняется одна из нескольких уникальных последовательностей операторов. В языках высокого уровня такой оператор называют переключателем.
Синтаксис структуры Select Case следующий:
Select Case выражение
Case список Условий_1
Операторы, выполняемые при совпадении условия_1 для значения выражения
Case список Условий_2
Операторы, выполняемые при совпадении условия_2 для значения выражения
. . . . . . . . . . . . . .
Case список Условий_i
Операторы, выполняемые при совпадении условия_ i для значения выражения
Case Else
Операторы, выполняемые при несовпадении ни одного из условий для значения выражения
End Select
где выражение – обязательный параметр, может быть любым выражением любого типа данных VBA, включая числовой, строковый или логический;
списокУсловий-i - обязательный параметр, присутствующий в строке, начинающейся ключевым словом Case. Содержит результаты вычисления выражения, записанные в одном из видов:
Case КОНСТАНТА1, КОНСТАНТА2, КОНСТАНТА3, …
Например:
Case 1000, 1100, 1400 - значение выражения равно 1000 или 1100, или 1400.
Case Is ЗНАК_ОТНОШЕНИЯ КОНСТАНТА
Ключевое слово Is дает указание компилятору сравнить результаты вычисления выражения, со значением константы следующей после слова Is.
Например:
Case Is >= 100 - значение выражения >= 100
Case КОНСТАНТА1 To КОНСТАНТА2
Ключевое слово To задает диапазон значений от КОНСТАНТА1 – нижняя граница до КОНСТАНТА2 – верхняя граница.
Например:
Case 1980 to 2000 – значение выражения от 1980 до 2000.
Оператор Select Case начинается ключевыми словами Select Case и заканчивается ключевыми словами End Select, он выполняется следующим образом – сначала вычисляется значение выражения, стоящего после ключевых слов Select Case, затем производится проверка на совпадение значения выражения и одного из Case условий, в случае совпадения выполняются операторы, помещенные за этим Case условием, а затем продолжается выполнение программы после оператора End Select. В случае, если совпадения не обнаружено ни в одном из Case условий, то выполняются операторы, находящиеся после ключевых слов Case Else.
ПРИМЕЧАНИЕ: при записи оператора Select Case следует помнить, что данный оператор выполняет проверку условий строго по порядку. Следует следить за тем, чтобы условия не “перекрывали” друг друга. Например, если первым поставить условие z>0, а затем z>12, то первое условие “перекроет” второе (и до проверки второго условия оператор не дойдет).
ВЫПОЛНИТЕ!
Задание 5. Составить блок-схему и программу начисления надбавки и суммы стипендии студентам по итогам сессии в зависимости от среднего балла:
-
средний балл
надбавка
меньше 4
стипендия не назначается
от 4 до 4.5
0%
Равен 4.5
15%
равен 5
50%
в остальных случаях
25%
Размер стипендии составляет 2 МРОТ (минимальный размер оплаты труда). Выполнить следующее форматирование ячеек ЭТ: для ячейки “надбавка” задать цвет шрифта – зеленый, начертание шрифта –жирный, числовой формат в виде - #0.00. Для ячейки “сумма к выдаче” задать фон ячейки – сиреневый, начертание шрифта – курсивный.
Блок-схема будет иметь следующий вид:
< 4
= 4,5
от 4 до 4,5
=5
> 4,5
Программа:
Public Sub стипендия()
‘Объявление переменной “минимальный размер стипендии”
Dim min_стип
‘присвоение переменной min_стип мин. значения стипендии
min_стип = 240
‘запись текста в ячейки
Range(“a2”).Value = “средбал”
Range(“b2”).Value = “надбавка”
Range(“c2”).Value = “сумма_к_выдаче”
‘присвоение имени ячейкам
Range(“a3”).Name = “средбал”
Range(“b3”).Name = “надбавка”
Range(“c3”).Name = “сумма_к_выдаче”
‘проверка значения в ячейке с именем “сред.бал”
Select Case Range(“средбал”)
Case Is < 4 ` если средний балл меньше 4
min_стип= 0
Range(“надбавка”) = 0
Case 4.5 ` если средний балл равен 4.5
Range(“надбавка”) = min_стип * 0.15
Case 4 To 4.5 ` если средний балл в диапазоне от 4 до 4.5
Range(“надбавка”) = 0
Case 5 ` если средний балл равен 5
Range(“надбавка”) = min_стип * 0.5
Case Else ` в остальных случаях
Range(“надбавка”) = min_стип * 0.25
End Select
‘вычисление значения ячейки “сумма_к_выдаче”
Range(“сумма_к_выдаче”) = Range(“надбавка”) + min_стип
‘Форматирование ячеек ЭТ
‘Задание цвета шрифта – зеленый
Range(“надбавка”).Font.ColorIndex = 4
‘Задание начертания шрифта –жирный
Range(“надбавка”).Font.Bold = True
‘Задание числового формата
Range(“надбавка”).NumberFormat = “#0.00”
‘Задание фона ячейки – сиреневый
Range(“сумма_к_выдаче”).Interior.ColorIndex = 7
‘Задание начертания шрифта – курсивный
Range(“сумма_к_выдаче”).Font.Italic = True
End Sub
Перейдя на рабочий лист ЭТ, введите в ячейку A3 средний балл студента и запустите программу на выполнение. Результаты увидите на рабочем листе. Проверьте работу программы, изменяя значения среднего балла.
4.КОНТРОЛЬНЫЕ ВОПРОСЫ.
Разветвляющиеся алгоритмы. Определение.
Назначение операторов выбора. Типы операторов.
Назначение строчного условного оператора If.
Формы строчного условного оператора If, синтаксис, примеры.
Назначение блочного условного оператора If.
Формы блочного условного оператора If, синтаксис, примеры.
Какое различие между строчным и блочным оператором If.
Назначение и синтаксис вложенного оператора If.
Логические операторы в VBА, их назначение.
Оператор безусловного перехода.
Оператор Select case. Синтаксис, назначение.
Как работает оператор Select case.
В каком порядке оператор Select case выполняет проверку условий.
