Visual basic умова. Оператори умови в VBA. If умова then вираз

Умови є дуже корисними при програмуванні, оскільки дозволяють нам виконувати дії, в залежності від встановлених критеріїв (використовується такий же принцип як і в IFфункції Excel).

Найбільш важливою функцією, яка задає умову є IFі зараз ми подивимося, як вона працює:

If [УМОВА ТУТ] Then "=> ЯКЩО умова вірна, ТОДІ" Інструкції, якщо "правда" Else "=> ІНАКШЕ" Інструкції, якщо "брехня" End If

Давайте перейдемо до практики і повернемось до нашого прикладу, який ми використовували в уроці з перемінними. Мета цієї процедури була в тому, щоб відкрити діалогове вікно, яке б містило значення з рядка, вказаного в осередку F5:

Якщо ви введете букву в клітинку F5, Це спричинить помилку. Ми хочемо запобігти цьому.

Sub variables () "Декларування змінних Dim last_name As String, first_name As String, age As Integer, row_number As Integer" Присвоєння значень змінним row_number = Range ( "F5") + 1 last_name = Cells (row_number, 1) first_name = Cells (row_number , 2) age = Cells (row_number, 3) "Діалогове вікно MsgBox last_name &" "& first_name &", "& age &" років "End Sub

Давайте додамо умова, яке перевірятиме - чи є введене значення в клітинку F5числом, перед тим, як код буде виконаний.

Ми скористаємося функцією IsNumericдля перевірки умови:

Sub variables () "Якщо значення в дужках (осередок F5) є числовим (І ТОМУ УМОВА IF Є ВІРНОЮ) тоді" виконати інструкції, які слідують після THEN If IsNumeric (Range ( "F5")) Then "Декларування змінних Dim last_name As String , first_name As String, age As Integer, row_number As Integer "Присвоєння значень змінним row_number = Range (" F5 ") + 1 last_name = Cells (row_number, 1) first_name = Cells (row_number, 2) age = Cells (row_number, 3) "Діалогове вікно MsgBox last_name &" "& first_name &", "& age &" років "End If End Sub

Нам також потрібно прописати інструкції, якщо поставлене нами умова не виконається:

Sub variables () If IsNumeric (Range ( "F5")) Then "Якщо умова виконується" Декларування змінних Dim last_name As String, first_name As String, age As Integer, row_number As Integer "Присвоєння значень змінним row_number = Range (" F5 ") + 1 last_name = Cells (row_number, 1) first_name = Cells (row_number, 2) age = Cells (row_number, 3) "Діалогове вікно MsgBox last_name &" "& first_name &", "& age &" років "Else" Якщо умова не виконується "Діалогове вікно: попередження MsgBox" Введене значення "& Range (" F5 ") &" не є вірним! " "Видалення вмісту комірки F5 Range (" F5 "). ClearContents End If End Sub

Тепер нечислове значення не спричинить ніяких проблем.

Працюючи з нашим масивом, який містить 16 рядків даних, наш наступний крок буде в перевірці чи є змінна row_number: "більше ніж або дорівнює 2" і "менше ніж або дорівнює 17".

Але спочатку поглянемо на оператори порівняння:

і ці корисні оператори:

Тепер давайте додамо одне з вище зазначених умов ANDміж операторів порівняння:

Sub variables () If IsNumeric (Range ( "F5")) Then "Якщо числове значення Dim last_name As String, first_name As String, age As Integer, row_number As Integer row_number = Range (" F5 ") + 1 If row_number> = 2 And row_number

Якщо ми хочемо зробити наш макрос більш практичним, ми можемо замінити 17 на змінну, яка б містила кількість рядків. Це б дозволило нам додавати і видаляти рядки з масиву без необхідності змінювати цей ліміт кожен раз.

Для того, щоб зробити це, ми повинні створити змінну nb_rowsі додати цю функцію.

У цьому випадку, ми використовуємо функцію WorksheetFunction.CountA, Яка є аналогом функції COUNTAв самому Excel.

Ми хочемо, щоб ця функція підрахувала кількість непустих осередків в першій колонці по записала отримане значення в змінну nb_rows:

Sub variables () If IsNumeric (Range ( "F5")) Then "ЯКЩО ЧИСЛО Dim last_name As String, first_name As String, age As Integer, row_number As Integer Dim nb_rows As Integer row_number = Range (" F5 ") + 1 nb_rows = WorksheetFunction.CountA (Range ( "A: A")) "Функція підрахунку кількості рядків If row_number> = 2 And row_number

ElseIf

ElseIfдає можливість додавати додаткові умови після IF команди:

If [УМОВА 1] Then "=> ЯКЩО умова 1 вірно, ТОДІ" Інструкції 1 ElseIf [УМОВА 2] Then "=> ЯКЩО умова 1 невірно, але умова 2 вірно, ТОДІ" Інструкції 2 Else "=> ІНАКШЕ" Інструкції 3 End If

якщо УМОВА 1виконується, Інструкція 1буде виконана і покине оператор IF(Який починається з IFі закінчується End If). якщо УМОВА 2приймає значення " брехня ", Тоді буде виконана Інструкція 2, І якщо вона в свою чергу повертає " брехня ", Тоді Інструкція 3(під Else) Буде виконана.

Sub scores_comment () "Змінні Dim note As Integer, score_comment As String note = Range (" A1 ")" Коментарі, засновані на отриманої оцінки If note = 6 Then score_comment = "Чудовий бал!" ElseIf note = 5 Then score_comment = "Хороший бал" ElseIf note = 4 Then score_comment = "Задовільний бал" ElseIf note = 3 Then score_comment = "Незадовільний бал" ElseIf note = 2 Then score_comment = "Поганий бал" ElseIf note = 1 Then score_comment = "Жахливий бал" Else score_comment = "Нульовий бал" End If "Коментар в осередку B1 Range (" B1 ") = score_comment End Sub

Select

Існує альтернатива використанню Ifз багатьма ElseIfінструкціями, а саме команда Select, Яка більше підходить до такого роду ситуацій.

Розглянемо приклад макросу з оператором Select:

Sub scores_comment () "Змінні Dim note As Integer, score_comment As String note = Range (" A1 ")" Коментарі, засновані на отриманої оцінки Select Case note "

Варто зазначити, що ми також могли використовувати і інші оператори порівняння:

Case Is> = 6 "якщо значення> = 6

Приклади з різними значеннями:

Case Is = 6, 7 "якщо значення = 6 або 7 Case Is 6, 7" якщо значення не дорівнює 6 або 7 Case 6 To 10 "якщо значення = будь-якого числа від 6 до 10

Однорядкова і багаторядкова конструкції оператора If ... Then ... Else і функція IIf, використовувані в коді VBA Excel - синтаксис, компоненти, приклади.

Оператор If ... Then ... Else

оператор If ... Then ... Elseпризначений для передачі управління одному з блоків операторів в залежності від результатів перевіряються умов.

однорядкова конструкція

оператор If ... Then ... Elseможе використовуватися в однорядковою конструкції без ключових слів Else, End If.

Синтаксис однорядковою конструкції If ... Then ...

If[Умова] Then[Оператори]

Компоненти однорядковою конструкції If ... Then ...

  • умова Trueабо False;
  • оператори умоваповертає значення True;

якщо компонент умоваповертає значення False, Блок операторів конструкції If ... Then ...

приклад 1

Sub primer1 () Dim d As Integer, a As String d = InputBox ( "Введіть число від 1 до 20", "Приклад 1", 1) If d> 10 Then a = "Число" & d & "більше 10" MsgBox a End Sub

багаторядкова конструкція

Синтаксис многострочной конструкції If ... Then ... Else

If[Умова] Then[Оператори] ElseIf[Умова] Then[Оператори] ---------------- Else[Оператори] End If

Компоненти многострочной конструкції If ... Then ... Else:

  • умова- числове або строкове вираження, наступне за ключовим словом Ifабо ElseIfі повертає логічне значення Trueабо False;
  • оператори- блок операторів коду VBA Excel, який виконується, якщо компонент умоваповертає значення True.
  • пунктирна лініяпозначає додаткові структурні блоки з рядка ElseIf [умова] Thenі рядки [Оператори];
  • блок операторів після ключового слова Elseвиконується в будь-якому випадку, але структурний блок коду з рядка Elseі рядки [Оператори]не є обов'язковим і може бути пропущений.

якщо компонент умоваповертає значення False, Наступний за ним блок операторів конструкції If ... Then ... Elseпропускається і управління програмою передається наступному рядку коду.

Найпростіший варіант многострочной конструкції If ... Then ... Else:

If[Умова] Then[Оператори] Else[Оператори] End If

приклад 2

Sub primer2 () Dim d As Integer, a As String d = InputBox ( "Введіть число від 1 до 40", "Приклад 2", 1) If d< 11 Then a = "Число " & d & " входит в первую десятку" ElseIf d >10 And d< 21 Then a = "Число " & d & " входит во вторую десятку" ElseIf d >20 And d< 31 Then a = "Число " & d & " входит в третью десятку" Else a = "Число " & d & " входит в четвертую десятку" End If MsgBox a End Sub

функція IIf

функція IIfперевіряє заданий умова і повертає значення в залежності від результату перевірки.

синтаксис функції

IIf([Умова], [якщо True], [якщо False])

Компоненти функції IIf

  • умова- числове або строкове вираження, яке повертає логічне значення Trueабо False;
  • якщо True IIf, якщо умоваповернуло значення True;
  • якщо False- значення, яке повертає функція IIf, якщо умоваповернуло значення False.

приклад 3

Sub primer3 () Dim d As Integer, a As String d = InputBox ( "Введіть число від 1 до 20", "Приклад 3", 1) a = IIf (d< 10, d & " - число однозначное", _ d & " - число двузначное") MsgBox a End Sub

При натисканні кнопки «Cancel» або закриття хрестиком діалогового вікна InputBox із прикладів, генерується помилка, так як в цих випадках повертає порожній рядок. Присвоєння пустого рядка змінної d типу Integer викликає помилку. При натисканні кнопки «OK» у діалоговому вікні, числа, вписані в поле вводу в текстовому форматі, VBA Excel автоматично перетворює в числовий формат змінної d.

Використання умовного оператора невід'ємна частина практично будь-якої мови програмування. І фактично, все виходить від математики, так як спочатку, мови програмування формувалися як засобу для вирішення різних завдань. Скажу відразу, стаття нудна і нецікава Так як вичавити що нове з програмування, зокрема з опису операторів просто фізично неможливо, але я щось та придумаю. І так, в мові VBA для перевірки умов використовується оператор if, який може існувати в декількох варіаціях. Але спершу, трохи гумору ....

Біжить заєць по лісу і бачимо ведмедя, який читає книгу. Заєць питає: "Клишоногий, ти що читаєш?" той з розумним виглядомвідповідає: "Логіку". Косий з здивованим виглядом запитує "А що таке логіка?" "Ну дивись" - говорить ведмідь:

  • М: У тебе сірники є?
  • З: Ні
  • М: Значить, ти не куриш
  • З: Так!
  • М: Якщо ти не куриш, значить, немає зайвих витрат грошей
  • З: Чи правда!
  • М: Значить, ти ходиш по дівкам?
  • З: Звичайно!
  • М: А раз ти ходиш по дівкам, значить, ти не імпотент!
  • З: Знову вірно!

Заєць зрадів настільки розумною книзі і попросив почитати її у клишоногого. Йде по лісі задоволений і радіє, тут йому назустріч вовк йде. Заєць вирішив випробувати логіку на сірому і питає його:

  • З: У тебе сірники є?
  • В: Так
  • З: Чи означає ти імпотент!

Ну да, переказав анекдот як пам'ятав

Добре, тепер давайте приступимо до теорії ...

Варіант 1. Найпростіший варіант використання умовного оператора VBA if, це коли йде перевірка умови, і якщо воно виконується, то йде виконання одного виразу:

If умова then вираз

Варіант 2. Може виникнути ситуація, коли після перевірки умови треба виконати кілька виразів, в такому випадку оператор if набуває вигляду:

If умова then

вираз 1

вираз 2

вираз N

Як бачимо, в даному випадку використовується закриває блок if ... end if, він актуальний і в тому випадку, коли оператори вкладені.

варіант 3: Щоб не створювати вкладених умовних операторів, використовується наступна конструкція:

If умова then

вираз 1

вираз 2

Тут все гранично просто, якщо умова істинна, виконується перший вираз, якщо немає - другий. Варто пам'ятати, що після перевірки умови можуть слідувати кілька операторів, як в варіанті вище.

варіант 4: Перевірка декількох умов:

If умова 1 then

вирази 1

ElseIf умова 2 then

вирази 2

ElseIf умова 3 then

вирази 3

Логіка роботи така: спочатку йде перевірка першого умови, якщо воно істинне, то виконуються перші вирази і після відбувається перехід до оператора, що слідує за End If. Якщо ж перша умова не виконується, відбувається перевірка другого і так далі, використання вираження Elseв кінці не є обов'язковим, за ним може слідувати оператор, який повинен виконатися, якщо жодне з попередніх умов не виповнилося.

Добре, тепер напишемо простий приклад використання конструкції VBA if then. Створіть форму в редакторі Visual Basic for Applications і додайте на її поверхню три текстові мітки () і одну кнопку (). У редакторі кодапропішем:

Private Sub GetSub () Dim MySumm As Integer Dim MyVar As Byte MyVar = 0 Do While MySumm<= 10000 MySumm = MySumm + 1 If MySumm = 10 Then Label1.Caption = "Сума досягла значення 10" ElseIf MySumm = 100 Then Label2.Caption = "Сума досягла значення 100" ElseIf MySumm = 1000 Then Label3.Caption = "Сума досягла значення тисячі" Else Label4.Caption = "Досягнуто значення"& MySumm End If Loop End Sub Private Sub CommandButton1_Click () Call GetSub End Sub Private Sub UserForm_Initialize () Label1.Caption = "" Label1.FontSize = 13 Label1.ForeColor = vbRed Label2.Caption = "" Label2.FontSize = 13 Label2. ForeColor = vbGreen Label3.Caption = "" Label3.FontSize = 13 Label3.ForeColor = vbBlue Label4.Caption = "" Label4.FontSize = 13 CommandButton1.Caption = "Виконати" End Sub

У процедурі GetSub відбувається використання циклу, умова виконання циклу - значення змінної MySumm має бути менше або рівно 10000. У тілі самого циклу використовуються оператори VBA if then з декількома варіантами. Відбувається перевірка умов: якщо сума досягла значення 10, то записати в перший текстове поле одну інформацію, якщо 100 - іншу інформацію, якщо 1000 - третю інформацію, в іншому випадку - записати дані в властивість Caption четвертого текстового поля.

Оператор If ... Then ... Else.

Цей урок буде присвячений такій темі, як - оператори. Зокрема ми познайомимося з оператором If ... Then ... Else, а так же познайомимося з арифметичними операторами і операторами порівняння, без яких оператор If ... Then ... Else нам з вами не застосувати максимально.

У Visual Basic є досить велика кількість різних операторів, деякі з них здатні закип'ятити мозок навіть бувалих програмісту. Щоб "не закипіти", ми розглянемо тільки самі основні оператори на яких працює 95% програм, інші оператори ми вивчимо в міру необхідності, таким чином тобі не доведеться зазубрювати цілий підручник і можна буде відразу ж перейти до практичних занять.

Викладаючи цей урок, я маю на увазі, що у тебе є пізнання в області математики початкових класів.
Що за пізнання? Це ті самі приклади, в яких ми вичитали, складали, множили, ... Пригадуєш таке? Відмінно! Значить є ще порох в порохівницях.

Перед тим, як приступити до вивчення оператора If ... Then ... Else необхідно познайомитися з арифметичними і логічними операторами, без яких оператор If ... Then ... Else нам ніяк чи не застосувати з точки зору глибокої практики. Гаразд, вистачить нудних настанов і відступів, сідай зручніше, ми переходимо до справи!

арифметичні оператори
За допомогою даних операторів можна; ділити, множити, складати і т.д.
Тут все так само просто, як в школі в початкових класах.

+ (Додавання)
- (віднімання)
* (Множення)
/ (Ділення із залишком) в школі знаком ділення був ось це знак : запам'ятай ці відмінності і не плутай
\ (Цілочисельне ділення, без залишку)

Оператори порівняння
Це досить важливі оператори. За допомогою даних операторів можна порівнювати числа, рядки і інші дані. Без операторів порівняння неможливо побудувати логіку або розгалуження в програмі.
Важливо запам'ятати, що оператори порівняння порівнюють два вирази і повертають логічне значення Boolean у вигляді True (якщо умова вірна) і False (якщо умова не вірно).
True в перекладі з англійської означає - Правда
False в перекладі з англійської означає - Брехня
З ходу можливо це здасться незрозумілим, але не переживай, трохи нижче ти зрозумієш що вся ця чортівня значить.

= (Дорівнює)
Значення першого виразу дорівнює значенню другого виразу, або це може бути результат складання / віднімання / ... двох обчислень.

<> (Нерівність)
Значення першого виразу не дорівнює значенню другого виразу

< (Менше)
Значення першого виразу менше значення другого виразу

> (Більше)
Значення першого виразу більше значення другого

<= (менше або дорівнює)
Значення першого виразу менше або дорівнює значенню другого

>=
(більше чи рівно)
Значення першого виразу більше або дорівнює значенню другого

Бачу-бачу, що тобі вже стало страшнувато, насправді нічого страшного немає!
Читай далі і ти переконаєшся, що все досить просто.
Нижче ми гарненько підтвердимо все на прикладах і на практиці.
І так, арифметичні і логічні оператори ми розглянули, тепер можна перейти безпосередньо до самого оператору If ... Then ... Else

Оператор If ... Then ... Else
Спочатку давай подивимося, що означають слова оператора, якщо їх перекласти з англійської на російську мову.
If перекладається, як Якщо
Then перекладається, як Те
Else перекладається, як Інакше

Для чого використовується оператор If ... Then ... Else?
За допомогою даного оператора можна робити розгалуження програм, без цього оператора неможливо написати серйозну програму.
Перейдемо до типових прикладів.

Як комп'ютер обробляє оператор If ...?
Припустимо, що у нас є дві змінних:

Dim var1 = 10 Dim var2 = 5

і припустимо, що у нас є умова:

If var1> var2 Then MsgBox ( "Так, змінна var1 більше змінної var2") End If

Як умова показане вище працює?
Комп'ютер подивиться на змінні var1 і var2, якщо var1 дійсно більше var2, значить умова вірна (True - Правда) і комп'ютер покаже MsgBox.
Якщо умова буде не вірно (False - Брехня), то комп'ютер не покаже MsgBox.
Переконатися в цьому можна помінявши значення змінних на інші числа, щоб умова вийшло не вірно, тоді ми не побачимо MsgBox.

Увага!

Для вивчення прикладів необхідно.
Після створення проекту на формі необхідно, далі, клікнути на кнопку два рази лівою кнопкою мишки, відкриється редактор коду, при цьому курсор буде встановлений в те місце, куди потрібно вставити код з прикладів, які наведені нижче.
Після вставки коду необхідно і подивитися на результат натиснувши на кнопку розміщену на формі.


приклади
Далі будуть наведені приклади в зазначеній нижче послідовності.

арифметичні оператори
+ (Додавання)
- (віднімання)
* (Множення)
/ (Ділення)

спойлер: Арифметичні приклади - НАТИСНИ

+ Додавання:

"Приклад показує як можна скласти два числа Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 + chislo2 MsgBox (resultat)

- Віднімання:

"Приклад показує як можна отримати різницю двох чисел (віднімання) Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 - chislo2 MsgBox (resultat)

* Множення:

"Приклад показує як можна помножити одне число на інше Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 * chislo2 MsgBox (resultat)

/ Розподіл:

"Приклад показує як можна розділити одне число на інше Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 / chislo2 MsgBox (resultat)

Оператори порівняння
= (Дорівнює)
<> (Нерівність)
< (Менше)
> (Більше)
<= (менше або дорівнює)
>= (більше чи рівно)

спойлер: Оператори порівняння - НАТИСНИ

= Так само:

"Приклад показує як можна дізнатися дорівнює чи текст в змінної іншого тексту який ми вказали Dim stroka As String =" Привіт NubClub! "" Якщо stroka дорівнює тексту в подвійних лапках означає покажи мені MsgBox If stroka = "Привіт NubClub!" Then MsgBox ( "Змінна дорівнює тексту, який ми шукаємо!") End If

<>нерівність:

"Приклад показує як можна дізнатися дорівнює чи текст в змінної іншого тексту який ми вказали Dim stroka As String =" Привіт NubClub! "" Якщо stroka не дорівнює тексту в подвійних лапках означає покажи мені MsgBox If stroka<>"Я програміст" Then MsgBox ( "Текст в змінної stroka НЕ дорівнює тексту в лапках!") End If

< Меньше:

"Приклад показує як можна порівняти два числа Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5" Якщо chislo2 менше chislo1 значить покажи мені MsgBox If chislo2< chislo1 Then MsgBox("Значение переменной chislo2 меньше значения переменной chislo1") End If

> Більше:

"Приклад показує як можна порівняти два числа Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5" Якщо chislo1 більше chislo2 значить покажи мені MsgBox If chislo1> chislo2 Then MsgBox ( "Значення змінної chislo1 більше значення змінної chislo2") End If

<= Меньше или равно:

"Приклад показує як можна порівняти два числа Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5" Якщо chislo2 менше або дорівнює chislo1 значить покажи мені MsgBox If chislo2<= chislo1 Then MsgBox("Значение переменной chislo2 меньше или равно значению переменной chislo1") End If

> = Більше або дорівнює:

"Приклад показує як можна порівняти два числа Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5" Якщо chislo1 більше або дорівнює chislo2 значить покажи мені MsgBox If chislo1> = chislo2 Then MsgBox ( "Значення змінної chislo1 більше або дорівнює значенню змінної chislo2" ) End If

Оператор If ... Then ... Else - Галуження
Вище були наведені досить прості приклади використання умов If ... Then, тобто без розгалуження і без застосування Else.
Тепер давай розглянемо прімерчік з розгалуженням, вони трохи складніше, але без них нікуди.
За своєю суттю із застосуванням Else все приклади залишаться такими ж як і вище, додасться лише невелике розгалуження програми.
Що додасться?
Якщо раніше у нас MsgBox з'являвся тільки тоді, коли умова була вірно, то з застосування Else можна викликати MsgBox навіть тоді, коли умова не вірно.

І так, приклад.

"Приклад показує як можна дізнатися дорівнює чи текст в змінної іншого тексту який ми вказали Dim stroka As String =" Привіт NubClub! "" Якщо stroka дорівнює тексту в подвійних лапках означає покажи мені MsgBox з текстом - Змінна дорівнює тексту, який ми шукаємо! "Якщо stroka не дорівнює тексту в подвійних лапках означає покажи мені MsgBox з текстом - Змінна не дорівнює тексту, який ми шукаємо! If stroka =" Привіт NubClub! "Then MsgBox (" Змінна дорівнює тексту, який ми шукаємо! ") Else MsgBox ( "Змінна не дорівнює тексту, який ми шукаємо!") End If

Бувають випадки, що у нас одна змінна і кілька значень з текстом, які потрібно перевірити. Що тоді робити? Знімати штани і бігати ?!
Ні, це не наш метод
Є більш елегантне рішення. Можна ускладнити наше умова за допомогою ElseIf і таким чином перевірити скільки завгодно рядків, в розумних межах звичайно. Якщо рядків дуже багато, то тут вже прийдуть на допомогу цикли, з якими ми попрацюємо на наступних уроках.

Розглянемо приклад.
Давай уявимо, що нам потрібно створити логіку для вуличного світлофора, щоб він працював і показував кольору.
Як це зробити?
Насправді це не складно, приклад.

Найбільш важливі оператори умови, що використовуються в Excel VBA - це оператори If ... Thenі Select Case. Обидва цих вираження перевіряють одне або кілька умов і, в залежності від результату, виконають різні дії. Далі ми поговоримо про ці дві операторах умови докладніше.

Оператор «If ... Then» в Visual Basic

оператор If ... Thenперевіряє умова і, якщо воно істинно (TRUE), то виконується заданий набір дій. Також може бути визначений набір дій, які повинні бути виконані, якщо умова помилкова (FALSE).

синтаксис оператора If ... Thenось такий:

If Условіе1 Then
Дії в разі, якщо виконується Условіе1
ElseIf Условіе2 Then
Дії в разі, якщо виконується Условіе2
Else
Дії в разі, якщо не виконано жодне з Умов
End If

У цьому виразі елементи ElseIfі Elseоператора умови можуть не використовуватися, якщо в них немає необхідності.

Нижче наведено приклад, в якому за допомогою оператора If ... Thenколір заливки активної комірки змінюється в залежності від наявного в ній значення:

If ActiveCell.Value< 5 Then ActiveCell.Interior.Color = 65280 "Ячейка окрашивается в зелёный цвет ElseIf ActiveCell.Value < 10 Then ActiveCell.Interior.Color = 49407 "Ячейка окрашивается в оранжевый цвет Else ActiveCell.Interior.Color = 255 "Ячейка окрашивается в красный цвет End If

Зверніть увагу, що як тільки умова стає істинним, виконання умовного оператора переривається. Отже, якщо значення змінної ActiveCellменше 5, то істинним стає перша умова і осередок забарвлюється в зелений колір. Після цього виконання оператора If ... Thenпереривається і інші умови не перевіряються.

Оператор «Select Case» в Visual Basic

оператор Select Caseсхожий з оператором If ... Thenв тому, що він також перевіряє істинність умови і, в залежності від результату, вибирає один з варіантів дій.

синтаксис оператора Select Caseось такий:

Select Case вираз
Case значення1
Дії в разі, якщо результат Вирази відповідає Значенію1
Case значення2
Дії в разі, якщо результат Вирази відповідає Значенію2

Case Else
Дії в разі, якщо результат Вирази не відповідає жодному з перерахованих варіантів Значення
End Select

елемент Case Elseне є обов'язковим, але його рекомендується використовувати для обробки непередбачених значень.

У наступному прикладі за допомогою конструкції Select Caseзмінюється колір заливки поточної комірки в залежності від наявного в ній значення:

Select Case ActiveCell.Value Case Is<= 5 ActiveCell.Interior.Color = 65280 "Ячейка окрашивается в зелёный цвет Case 6, 7, 8, 9 ActiveCell.Interior.Color = 49407 "Ячейка окрашивается в оранжевый цвет Case 10 ActiveCell.Interior.Color = 65535 "Ячейка окрашивается в жёлтый цвет Case 11 To 20 ActiveCell.Interior.Color = 10498160 "Ячейка окрашивается в лиловый цвет Case Else ActiveCell.Interior.Color = 255 "Ячейка окрашивается в красный цвет End Select

У наведеному вище прикладі показано, як можна різними способами задати значення для елемента Caseв конструкції Select Case. Ось ці способи:

Case Is<= 5 Таким чином за допомогою ключового слова Case Isможна перевірити, чи задовольняє значення виразиумові виду <=5 .
Case 6, 7, 8, 9 Так можна перевірити, чи збігається значення виразиз одним з перерахованих значень. Перераховані значення розділяються комами.
Case 10 Так перевіряється, чи збігається значення виразиіз заданим значенням.
Case 11 To 20 Таким чином можна записати вираз для перевірки, чи задовольняє значення виразиумові виду від 11 до 20(Еквівалентно нерівності "11<=значение<=20”).
Case Else Ось так, за допомогою ключового слова Else, Вказуються дії для того випадку, якщо значення виразине відповідає жодному з перерахованих варіантів Case.

Як тільки одна з умов буде знайдено, виконуються відповідні дії і виробляється вихід з конструкції Select Case. Тобто в будь-якому випадку буде виконана тільки одна з перерахованих гілок Case.

Сподобалася стаття? Поділіться з друзями!