Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник по VBA.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
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.КОНТРОЛЬНЫЕ ВОПРОСЫ.

  1. Разветвляющиеся алгоритмы. Определение.

  2. Назначение операторов выбора. Типы операторов.

  3. Назначение строчного условного оператора If.

  4. Формы строчного условного оператора If, синтаксис, примеры.

  5. Назначение блочного условного оператора If.

  6. Формы блочного условного оператора If, синтаксис, примеры.

  7. Какое различие между строчным и блочным оператором If.

  8. Назначение и синтаксис вложенного оператора If.

  9. Логические операторы в VBА, их назначение.

  10. Оператор безусловного перехода.

  11. Оператор Select case. Синтаксис, назначение.

  12. Как работает оператор Select case.

  13. В каком порядке оператор Select case выполняет проверку условий.