16340

Условный оператор в VBA

Лекция

Информатика, кибернетика и программирование

Условный оператор Условный оператор VBA позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом условный оператор это средство ветвления вычислительного процесса. В VBA существует 2 типа условного ...

Русский

2013-06-20

49 KB

27 чел.

Условный оператор

Условный оператор VBA позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса.

В VBA существует 2 типа условного оператора: линейный и блочный.

1. Линейный условный оператор используется для того, чтобы выполнить какой-либо один оператор, если некоторое условие будет истинным.

Синтаксическая конструкция линейного оператора имеет две формы: безальтернативную, альтернативную.

Структура безальтернативного условного оператора (сокращенный вариант):

If <условие> Then <оператор 1>

Структура альтернативного условного оператора (полный вариант):

If <условие> Then <оператор 1> Else <оператор 2>

где 

                   If, Then, Else - зарезервированные слова (если, то, иначе);

                                      <условие> -  произвольное выражение логического типа;

<оператор 1>,  <оператор 2> - любые операторы языка VBA.

Работа. Вначале вычисляется условное выражение <условие>. Если результат есть True (истина), то выполняется <оператор 1>, а <оператор 2> пропускается. Если результат есть False (ложь), наоборот, <оператор 1> пропускается, а выполняется <оператор 2>.

2. Блочный условный оператор используется в случае истинности условия необходимо выполнить несколько программных операторов (блок операторов). Блочный оператор имеет две формы: безальтернативный, альтернативный.

Структура безальтернативного блочного оператора (сокращенный вариант)

If <условие> Then

<оператор1>

<оператор2>

…………….

<оператор n>

End If

где

End If - указывает на окончание блока оператора If.

Структура альтернативного блочного оператора:

If <условие> Then

<оператор1>

<оператор2>

…………….

<оператор n>

Else

<оператор1>

<оператор2>

…………….

<оператор n>

End If

Пример 1.

Постановка задачи. Создать в стандартном модуле пользовательскую процедуру вычисления уравнения вида ax2 + bx + c = 0.

Технология выполнения задания:

1. Исходные данные:

a, b, c  R

Результат: х1, х2  R.

2.Набрать в стандартном модуле проекта следующую пользовательскую процедуру:

Private Sub yravnenie ()

a = InputBox("a=", a)

b = InputBox("b=", b)

c = InputBox("c=", c)

d = b ^ 2 - 4 * a * c

If d >= 0 Then

x1 = (-b + Sqr(d)) / (2 * a)

x2 = (-b - Sqr(d)) / (2 * a)

MsgBox (x1)

MsgBox (x2)

Else

MsgBox ("Решений нет")

End If

End Sub

3.Вычислить корни квадратного уравнения при произвольных исходных данных.

Альтернативный блочный оператор If применяется в тех случаях, когда при выполнении условия необходимо осуществить один набор программных операторов, а при невыполнении – другой.

Операторы IF могут быть вложенными друг в друга. Такое вложение операторов применяется, если нужно проверить какое-либо условие при другом условии, которое является истинным.

Формат вложенного оператора If:

If <условие1> Then

                   If <условие2> Then

<оператор1>

<оператор2>

…………….

<оператор n>

Else

<оператор1>

<оператор2>

…………….

<оператор n>

End If

End If

Пример 2.

Постановка задачи. Создать в стандартном модуле пользовательскую функцию нахождения максимального среди трех заданных чисел y1 = a+2*b; y2 = a*b+c; y3 = c2 + 1.

Технология выполнения задания:

1. Исходные данные:

a, b, c  R

Результат: Max  R.

2.Набрать в стандартном модуле проекта следующую пользовательскую функцию:

Function y(a,b,c)

y1 = a+2*b

y2 = a*b+c

y3 = c^2+1

If y1 > y2 Then

If y1 > y3 Then y = y1 Else y = y3

Else

If y2 > y3 Then y = y2 Else y = y3

End If

End Function

3.Вычислить корни квадратного уравнения при произвольных исходных данных.

При использовании вложенных операторов If важно не перепутать варианты сочетания условий. Нужно помнить правило: альтернатива Else считается принадлежащей ближайшему оператору If, не имеющему ветви Else.

В VBA предусмотрена конструкция для работы с несколькими операторами If. Эти операторы применяются в случаях, когда необходимо рассмотреть еще несколько условий в дополнение к исходному. Для этого служит конструкция: IfThenElseIf. В отличие от вложенных операторов конструкция с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие принимает значение False.

Формат записи:

If <условие1> Then

<оператор1>

ElseIf <условие2> Then

<оператор2>

Else

<.оператор3>

EndIf

Пример 3.

Постановка задачи. Менеджеру по продажам необходимо разработать функцию, позволяющую рассчитывать комиссионные. Процент комиссионных зависит от объема проданного товара и начисляется по следующему правилу, представленному в таблице 15.

Правила расчета комиссионных

Объем продаж за неделю, р.

Комиссионные, %

От 0 до 9999

8

От 10000 до 19999

10

От 20000 до 39999

12

Более 40000

14

Технология выполнения задания:

1. Исходные данные:

Продажи  Z.

Результат: Комиссионные  R.

2. Построить для расчета комиссионных в стандартном модуле пользовательскую функцию:

Function Комиссионные (Продажи)

If Продажи <= 9999 Then

   Комиссионные = Продажи * 0.08

ElseIf Продажи <= 19999 Then

   Комиссионные = Продажи * 0.1

ElseIf Продажи <= 39999 Then

   Комиссионные = Продажи * 0.12

Else

   Комиссионные = Продажи * 0.14

End If

End Function

3. Вычислить.


 

А также другие работы, которые могут Вас заинтересовать

32982. О СПЕЦИФИКЕ П. ЗНАНИЯ. ПРИ КАКИХ УСЛОВИЯХ П. МОЖЕТ СТАТЬ НАУКОЙ (К.МАНХЕЙМ. ИДЕОЛОГИЯ И УТОПИЯ) 14 KB
  ощущал свое время как эпоху радикальной соц. перестройки Суть перестройки: переход от традиционной соц. чтобы избежать рокового развития событий необходимо регулирование даже планирование социокультурных изменений 3. австрийский социолог и политик Шеффле: общвенная и госвенная жизнь cn be разделена на 2 части: 1 повседневная госвенная жизнь=управление 2 П.
32983. ПЕРСПЕКТИВЫ РАЗВИТИЯ ЕСТЕСТВЕННЫХ И ГУМАНИТАРНЫХ НАУК В КОНТЕКСТЕ МИРОВОЙ СИСТЕМЫ (И.ВАЛЛЕРСТАЙН. ЭВОЛЮЦИЯ СТРУКТУР ЗНАНИЯ В МИРОСИСТЕМНОЙ ПЕРСПЕКТИВЕ) 17.06 KB
  Она синтезирует социологический исторический и экономический подходы к общвенной эволюции. Концепция Мир системная теория: мир и мировое сообщво система госв госва в этой системе располагаются по экономическому фактору госваядра центра: США Япония Зап. ввел новое понятие модернити современное индустриальное общво. Согласно их кредо по мере продвижения к правильному пониманию реального мира формируется условие для лучшего управления реальным общвом.
32984. ПОНИМАНИЕ КАК МЕТОД ПОЗНАНИЯ В СОЦ.-ГУМАНИТАРНЫХ НАУКАХ 20.88 KB
  ПОНИМАНИЕ КАК МЕТОД ПОЗНАНИЯ В СОЦ.ГУМАНИТАРНЫХ НАУКАХ Понимание психологическое состояние верное восприятие или интерпретация к. В психолингвистике понимание трактуется преимущественно как result смыслового восприятия речевого сообщения. Понимание как метод гуманитарных наук было противопоставлено объяснению как методу естественных наук.
32985. ПОСТНЕКЛАССИЧЕСКАЯ НАУКА: МЕТОДОЛОГИЧЕСКИЕ ОСНОВАНИЯ И ФИЛОСОФСКИЕ ПОСЛЕДСТВИЯ 18.97 KB
  В качестве парадигмальной теории постнеклассической науки выступает синергетика теория самоорганизации изучающая поведение открытых неравновесных систем. Наиболее ценным достижением постнеклассической науки выступает предпринятая в ней попытка соединения объективного мира и мира человека. Гуманитарные и естественные науки больше не представляются разделенными непреодолимой пропастью.
32986. ПРЕДМЕТНЫЕ СФЕРЫ И ГРАНИ ВЗАИМОДЕЙСТВИЯ ФИЛОСОФИИ И НАУКИ (Ф.ФРАНК. КАКАЯ ПОЛЬЗА В ФИЛОСОФИИ НАУКИ) 18.2 KB
  ПРЕДМЕТНЫЕ СФЕРЫ И ГРАНИ ВЗАИМОДЕЙСТВИЯ ФИЛОСОФИИ И НАУКИ Ф. КАКАЯ ПОЛЬЗА В ФИЛОСОФИИ НАУКИ 1. философия всегда стремилась связать абстрактные положения науки со здравым смыслом вырабатывая тем самым единый и доступный рациональному пониманию взгляд на мир из которого вытекают определенные принципы человеческого поведения и деятти задача философии науки гуманизация науки и преодоление разрыва м у ее гуманитарными и естественнонаучными областями 2. Философия науки связующее звено способное обеспечить единое научное понимание мира и...
32987. ПРИРОДА И СУЩНОСТЬ НАУЧНЫХ РЕВОЛЮЦИЙ (Т.КУН. СТРУКТУРА НАУЧНЫХ РЕВОЛЮЦИЙ) 14.44 KB
  Развитие науки процесс поочередной смены 2х периодов: 1 нормальная наука безраздельно господствует парадигма 2 научная революция : распад парадигмы конкуренция м у альтернативными парадигмами победа одной из них переход к новому периоду нормальной науки . Свва парадигмы: 1 принята научным сообщвом как основа для дальнейшей работы; 2 содержит переменные вопросы т. Переход одной парадигмы к др. 2 Период нормальной науки : начинается с признания парадигмы формулируются и широко применяются самые многообразные и...
32988. ПРИРОДА И СУЩНОСТЬ НАУЧНЫХ РЕВОЛЮЦИЙ 23.48 KB
  Макс Планк старое поколение ученых не приживается к новым идеям однако они отходят от науки и умирают. компонентов науки. Есть микрореволюции в рамках той или иной науки физика биология экология; глобальные революции появление науки религии. философии проблема роста развития знания является центральной в философии науки.
32989. Общественное сознание и его структура 17.1 KB
  Конец формы Общественное сознание и его структура. Если сознание есть во многом продут социальный есть порождение общественных отношений то что такое общественные отношения общественное сознание Какова их структура Механизм работы И здесь наблюдаются определенные отличия индивидуального сознания и общественного сознания. Вопервых индивидуальное сознание имеет границы жизни обусловленные жизнью конкретного человека. Общественное же сознание может охватывать жизнь множества поколений.
32990. Структура общественного сознания и его основные формы 15.45 KB
  Обыденное и теоретическое сознание.Общественное сознание это совокупность идей взглядов и оценок свойственных данному обществу в осознании им собственного бытия.Индивидуальное сознание это совокупность идей взглядов чувств свойственных конкретному человеку.ОБЩЕСТВЕННОЕ СОЗНАНИЕ складывается на основе сознаний отдельных людей но не является их простой суммой.