16340

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

Лекция

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

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

Русский

2013-06-20

49 KB

24 чел.

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

Условный оператор 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. Вычислить.


 

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

44366. Выбор и обоснование оптимальной схемы доставки груза из Западно – Сибирского региона до речного порта Якутск 2.98 MB
  Правила перевозок грузов в прямом смешанном сообщении. Динамика перерабатываемых грузов ООО Речной порт Якутск. А все они преследуют одну цель – максимальное удовлетворение потребности народного хозяйства в перевозках грузов и пассажиров при сокращении издержек транспортных и ускорении их доставки в пункт назначения. Для комплексного развития и эксплуатации всех видов транспорта необходимо не только определить общую потребность страны в грузовых и пассажирских перевозках но и распределить их между видами транспорта и отдельными...
44367. Стрелково-пушечное вооружение в условиях воздействия сплошного спектра термомеханических нагрузок 2.82 MB
  От этих немаловажных факторов и зависит его работоспособность ведь если не осмотреть и не проверить то можно пойти в бой с неисправным вооружением а если не почистить и не смазать после применения – это может привести к коррозии а в свою очередь к заклиниванию частей и механизмов. Продукты коррозии загрязняют детали снижают механические характеристики и портят внешний вид вооружения. Существует некоторая критическая относительная влажность воздуха выше которой при прочих равных условиях наступает резкое возрастание коррозии металла....
44368. СОВЕРШЕНСТВОВАНИЕ УПРАВЛЕНИЯ КРЕДИТНЫМ РИСКОМ (НА ПРИМЕРЕ «ВТБ 24» (ЗАО)) 1008 KB
  За счет этого источника формируется основная часть чистой прибыли отчисляемой в резервные фонды и идущей на выплату дивидендов акционерам банка. Средства банка формируются за счет клиентских денег на расчетных текущих срочных и иных счетах; межбанковского кредита; средств мобилизованных банком во временное пользование путем выпуска долговых ценных бумаг и т. Кредит стал основой банковского дела и базисом по которому судили о качестве и о работе банка. Особого внимания заслуживает процесс управления кредитным риском потому что от его...
44369. Роль связей с общественностью в повышении конкурентоспособности группы компаний «Евразия» 228 KB
  Во второй практической главе « Программа по повышению конкурентоспособности ГК «Евразия» дается общая характеристика ГК «Евразия», предоставляется конкурентный анализ деятельности ГК «Евразия», и разрабатывается концепция программы по повышению конкурентоспособности ГК «Евразия» и оценка ее эффективности.
44370. Покрытие пиковых нагрузок энергосистем 1.07 MB
  Электроэнергетика России имея общую мощность электростанций 210 млн. Так основные параметры и единичная мощность основного генерирующего оборудования и линий электропередач используемых в отрасли находятся на уровне развитых стран мира. кВтч а установленная мощность электростанций увеличится примерно на 50 процентов и достигнет 320млн. Первая на Енисее Красноярская ГЭС с бетонной плотиной длиной 1100м и высотой 120 м начала работать на полную мощность и теперь ее 12 гидроагрегатов вырабатывают в год в среднем 204 млрд.
44372. Анализ характеристик микромеханического гироскопа в режиме автоколебания 7.18 MB
  Перечень принятых обозначений и сокращений АД – амплитудный детектор АМ – амплитудная модуляция АФХ – амплитуднофазовая характеристика АХ – амплитудная характеристика АЦП – аналогоцифровой преобразователь ВМ – временная модуляция ДП – датчик положения ДПИ – датчик первичной информации ДС – датчик силы ИМ – инерционная масса К – компаратор Кл ключ КП – компенсирующий преобразователь МК микроконтроллер ММГ –...
44373. Аналіз діяльності ресторанного підприємства ТОВ Фантастік Інтернейшнл на прикладі Ресторану «Гімалаї» 143.67 KB
  Під час проходження практики я дізналася про різноманітні аспекти ресторанного господарства. Я отримала повну інформацію про правила здійснення торговельної діяльності, особливості національної кухні Індії, обслуговування населення в індійському стилі, порядок розрахунку зі споживачами. Загалом можу сказати, що робота в ресторані «Гімалаї» відображає сучасний рівень обслуговуваня населення в ресторанах України.
44374. Проектирование и разработка сайта интернет-представительства ООО «ХХХ» 1.98 MB
  Компании разрабатывают новые средства контакта со своими потенциальными потребителями и стараются размещать свои рекламные сообщения там где их аудитория проводит большую часть своего времени: на отраслевых развлекательных и новостных порталах в блогах и социальных сетях. Dremwever программный продукт от компании dobe. Кроме того разработчики компании dobe обновили движок WebKit улучшив поддержку видео и аудио На сегодняшний момент последней версией является Dremwever CS5. MySQL является собственностью компании Orcle Corportion...