Условный оператор visual basic. Операторы условия в VBA. If условие then

24.06.2020

The IF function in VBA is one of the most frequently used of all statements. The IF function checks if the specified condition is being met or not. The IF function in VBA works in a slightly different manner from how it works in Excel. In Excel, the IF function does two things: It checks whether the given condition evaluates to TRUE or FALSE and then returns a value to use based on the evaluation i.e IF(condition, return_value_if_condition_true, return_value_if_condition_false ). However, the IF function in VBA does only the first part, i.e. check if the condition evaluates to TRUE or FALSE. The steps to take in either scenario as specified using the additional THEN statement.

Using a simple IF function in VBA

Here’s an example of the IF function . This piece of VBA code is simply checking whether the condition specified (i.e. 1 > 4) evaluates to TRUE or FALSE. In this case, we have only specified the steps to be completed when the condition evaluates to TRUE. In this case, the result will be a being displayed on the screen. If the function were to evaluate to FALSE, the VBA code will do nothing.

1
2
3
4
5

Sub IF_FUNCTION()
If 7 > 1 Then
MsgBox "7 is greater than 1"
End If
End Sub

The THEN statement is essentially a directive indicating that the steps immediately following it are to be executed if the condition just before if evaluate to TRUE.

The IF function typically ends with an END IF declaration which lets the application know that it is the last line of the IF function. Given below is a slightly shorter form of the IF function. Note that the END IF statement has been eliminated in this and thus three lines of code has been merged into one.

Sub IF_FUNCTION_SHORT()
If 7 > 1 Then MsgBox "7 is greater than 1"
End Sub

However this form should be used only when there are no ELSE or ELSE IF statements are needed. Let’s look at what they are and how they help enhance the IF function.

Using a IF function with ELSE in VBA

In the example given above, we saw that the IF function would be able to carry out steps only if the condition evaluated to TRUE. But what if we wanted to specify the steps to be carried out when either of the conditions were met. One way to achieve branching out of an IF function is to use the ELSE statement. Simply put, the ELSE statement causes the application to execute the steps mentioned in the ELSE block when the condition specified in the IF clause evaluates to FALSE.

In the VBA code example below, the condition in the IF function evaluates to false, the steps mentioned in the ELSE block are executed with the result that the message “1 is less than 4” gets displayed on the screen. Multiple steps can be added to the block to have them all execute one after another.

1
2
3
4
5
6
7

Sub IF_ELSEIF_FUNCTION()
If 1 > 4 Then

Else :
MsgBox "1 is less than 4"
End If
End Sub

Using a IF function with ELSEIF and ELSE: in VBA

The ELSE statement may be supported by ELSEIF statements. They are typically used to check for specific conditions and if all of them evaluate to FALSE, the steps specified in the ELSE condition will finally get executed. The IF statement will check for a given condition. If that condition turns out to be FALSE, the condition specified in the first ELSEIF statement will be checked. If that also turns out to be FALSE, the condition specified in the second ELSEIF statement will be checked, and so on and so forth. If all conditions specified in the IF and ELSEIF statements turn out to be FALSE, by default the steps mentioned under the final ELSE: block will get executed. Please remember that if there are multiple ELSEIF statements, the first one that evaluates to TRUE will get executed and once completed, the code execution will move to the END IF statement. Even if there are multiple ELSEIF conditions that evaluate to TRUE, only the first one that evaluates to TRUE will be executed.

1
2
3
4
5
6
7
8
9
10
11


If < > Then
MsgBox "1 is greater than 4"
ElseIf < > Then

ElseIf < > Then

Else < >:

End If
End Sub

In the example shown below, the IF condition is checked first. Since it evaluates to FALSE, the first ELSEIF condition is evaluated, followed by the second. Since none of them evaluate to TRUE, the steps mentioned in the ELSE: condition are executed.

1
2
3
4
5
6
7
8
9
10
11

Sub IF_ELSEIF_ELSE_FUNCTION()
If 1 > 4 Then
MsgBox "1 is greater than 4"
ElseIf 2 > 4 Then
MsgBox "2 is greater than 4"
ElseIf 3 > 4 Then
MsgBox "3 is greater than 4"
Else :
MsgBox "1, 2 or 3 are lesser than 4"
End If
End Sub

Quick Tip – How to make IF statements work faster

Both the pieces of code appear similar. The two ELSEIF conditions in the second function have been swapped. Which one of the following pieces of VBA code do you think executes faster?:
End If
Next i
MsgBox Timer - t
End Sub

The answer is that the second one executes much faster than the first. Why? Because the second one needs to application to go through lesser lines of code before it finds a condition that evaluates to TRUE. Remember that the first ELSEIF condition that if found TRUE gets executed and none of the other conditions are evaluated, even if they were to also evaluate to TRUE. In the first piece of the VBA code, the ELSEIF function on line 6 evaluates to TRUE while in the second, line 5 meets the criteria. In essence, the more likely the condition is to get evaluated to TRUE, the earlier it should be placed in the VBA code, all else being the same.

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

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

Постановка задачи. Создать в стандартном модуле пользовательскую процедуру вычисления уравнения вида ax 2 + 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

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

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

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

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

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

<оператор1>

<оператор2>

…………….

<оператор n >

Else

<оператор1>

<оператор2>

…………….

< оператор n>

End If

End If

Пример 2.

Постановка задачи. Создать в стандартном модуле пользовательскую функцию нахождения максимального среди трех заданных чисел y 1 = a +2* b ; y 2 = a * b + c ; y 3 = c 2 + 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 . Эти операторы применяются в случаях, когда необходимо рассмотреть еще несколько условий в дополнение к исходному. Для этого служит конструкция: If … Then … ElseIf . В отличие от вложенных операторов конструкция с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие принимает значение False .

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

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

<оператор1>

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

<оператор2>

Else

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

EndIf

Пример 3.

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

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

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

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

От 0 до 9999

От 10000 до 19999

От 20000 до 39999

Более 40000

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

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. Вычислить.

Управляющие структуры позволяют управлять последовательностью выполнения программы. Без операторов управления все операторы программы будут выполняться слева направо и сверху вниз. Однако иногда требуется многократно выполнять некоторый набор инструкций автоматически, либо решить задачу по-другому в зависимости от значения переменных или параметров, заданных пользователем во время выполнения. Для этого служат конструкции управления и циклы.

VBA поддерживает следующие конструкции принятия решений:

If . . . Then . . . Else

6.1 Конструкция If . . . Then

Конструкция If . . . Then применяется, когда необходимо выполнить один или группу операторов в зависимости от некоторого условия. Синтаксис этой конструкции позволяет задавать ее в одной строке или в нескольких строках программы:

If условие Then выражение If условие Then выражение End If

Обычно условие является простым сравнением, но оно может быть любым выражением с вычисляемым значением. Это значение интерпретируется как False (Ложь), если оно нулевое, а любое ненулевое рассматривается как True (Истина). Если условие истинно, то выполняются все выражения, стоящие после ключевого слова Then. Для условного выполнения одного оператора можно использовать как синтаксис для одной строки, так и синтаксис для нескольких строк (блоковую конструкцию).

Следующие два оператора эквивалентны:

If anyDate < Now Then anyDate = Now If anyDate < Now Then anyDate = Now End If

Заметим, что синтаксис оператора If . . . Then для одной строки не использует оператор End If. Чтобы выполнить последовательность операторов, если условие истинно, следует использовать блоковую конструкцию If . . . Then . . . End If.

If anyDate < Now Then anyDate = Now Timer.Enabled = False " Запретить таймер. End If

Если условие ложно, то операторы после ключевого слова Then не выполняется, а управление передается на следующую строку (или строку после оператора End If в блочной конструкции).

6.2 Конструкция If . . . Then . . . Else

определяет несколько блоков операторов, один из которых будет выполняться в зависимости от условия:

If условие1 Then выражение1 ElseIf условие2 Then выражение2 . . . Else выражение-n End If

При выполнении сначала проверяется условие1. Если оно ложно, VBA проверяет следующее условие2 и т. д., пока не найдет истинного условия. Найдя его, VBA выполняет соответствующий блок операторов и затем передает управление инструкции, следующей за оператором End if. В данную конструкцию можно включить блок оператора Else, который VBA выполняет, если не выполнено ни одно из условий.

Конструкция If . . . Then . . . ElseIf в действительности всего лишь специальный случай конструкции If . . . Then . . . Else. Заметим, что в данной конструкции может быть любое число блоков ElseIf, или даже ни одного. Блок Else можно включать независимо от присутствия или, наоборот, отсутствия блоков ElseIf.

Sub пример1() Dim a As Single, b As Single, x As Single Dim z As Double Call read("A1", a) Call read("B1", b) Let x = CSng(InputBox("введи x", "Ввод данных", 0)) If x <= a Then z = Sin(x) ElseIf x >= b Then z = Tan(x) Else: z = Cos(x) End If Call out("C1", z) End Sub

Заметим, что можно добавить любое число блоков Elself в конструкцию If . . . Then. Однако количество блоков Elself может стать настолько большим, что конструкция If . . . Then станет очень громоздкой и неудобной. В подобной ситуации следует применять другую конструкцию принятия решения - Select Case.

6.3 Конструкция Select Case

Конструкция Select Case является альтернативой конструкции If . . . Then . . . Else в случае выполнения блока, состоящего из большого набора операторов. Конструкция Select Case предоставляет возможность, похожую на возможность конструкции If . . . Then . . . Else, но в отличие от нее она делает код более читаемым при наличии нескольких вариантов выбора.

Конструкция Select Case работает с единственным проверяемым выражением, которое вычисляется один раз при входе в эту конструкцию. Затем VBA сравнивает полученный результат со значениями, задаваемыми в операторах Case конструкции. Если найдено совпадение, выполняется блок операторов, ассоциированный с оператором Case:

Select Case проверяемое_выражение ] ] . . . ] End Select

Каждый список выражений является списком из одного или более значений. Если в одном списке больше одного значения, они отделяются запятыми. Каждый блок операторов содержит несколько операторов или ни одного. Если окажется, что вычисленному значению проверяемого выражения соответствуют значения из нескольких операторов Case, то выполняется блок операторов, ассоциированный с первым оператором Case из всех найденных соответствий. VBA выполняет блок операторов, ассоциированный с оператором Case Else (заметим, что он необязателен), если не найдено ни одного соответствия проверяемого значения выражения и значений из всех списков операторов Case.

Рассмотрим пример вычисления функции

Sub пример2() Const pi2 = 1.57 Dim x As Single Dim z As Double Let x = CSng(InputBox("введи x", "Ввод данных", 0)) Select Case x Case -pi2 z = Sin(x) Case 0 z = Cos(x) Case pi2 z = Tan(x) Case Else MsgBox "Неверные исходные данные!" Exit Sub End Select Call out("D1", z) End Sub

Заметим, что конструкция Select Case вычисляет выражение только один раз при входе в нее, а в конструкции If . . . Then . . . Else вычисляются различные выражения для каждого оператора Elself. Конструкцию If . . . Then . . . Else можно заменить конструкцией Select Case, только если оператор If и каждый оператор Elself вычисляют одно и то же выражение.

Оператор 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 и таким образом проверить сколько угодно строк, в разумных пределах конечно. Если строк очень много, то тут уже придут на помощь циклы, с которыми мы поработаем на следующих уроках.

Рассмотрим пример.
Давай представим, что нам нужно создать логику для уличного светофора, чтобы он работал и показывал цвета.
Как это сделать?
На самом деле это не сложно, пример.

Принятие решений позволяет программистам контролировать поток выполнения сценария или одного из его разделов. Исполнение управляется одним или несколькими условными операторами.

Ниже приведен общий вид типичной структуры принятия решений, найденной на большинстве языков программирования.

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

If...Then - Если То

Оператор If состоит из логического выражения, за которым следуют одно или несколько операторов. Если условие называется Истинным, выполняются утверждения в условии If (s). Если условие называется False, выполняются инструкции после цикла If.

Синтаксис

Ниже приведен синтаксис оператора If в VBScript.

If(boolean_expression) Then Statement 1 ..... ..... Statement n End If

Диаграмма потока

пример

Private Sub if_demo_Click() Dim x As Integer Dim y As Integer x = 234 y = 32 If x > y Then MsgBox "X is Greater than Y" End If End Sub

X is Greater than Y

Если заявление состоит из логического выражения следует один или более операторов.

if..else заявление

Оператор If состоит из логического выражения, за которым следуют одно или несколько операторов. Если условие называется Истинным, выполняются утверждения в условии If (s). Если условие называется False, выполняются утверждения в разделе Else Part.

Синтаксис

Ниже приведен синтаксис оператора If Else в VBScript.

If(boolean_expression) Then Statement 1 ..... ..... Statement n Else Statement 1 ..... .... Statement n End If

Диаграмма потока

пример

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

Private Sub if_demo_Click() Dim x As Integer Dim y As Integer x = 234 y = 324 If x > y Then MsgBox "X is Greater than Y" Else Msgbox "Y is Greater than X" End If End Sub

Когда приведенный выше код выполняется, он производит следующий результат.

Y is Greater than X

Если иное утверждение состоит из логического выражения следует один или более операторов. Если условие равно True, выполняются инструкции в операторах If . Если условие ложно, выполняется Else часть скрипта.

if ... elseif..else statement

Оператор If, за которым следует один или несколько инструкций ElseIf, которые состоят из булевых выражений, а затем следуют инструкции else по умолчанию, которая выполняется, когда все условие становится ложным.

Синтаксис

Ниже приведен синтаксис оператора If Elseif-Else в VBScript.

If(boolean_expression) Then Statement 1 ..... ..... Statement n ElseIf (boolean_expression) Then Statement 1 ..... .... Statement n ElseIf (boolean_expression) Then Statement 1 ..... .... Statement n Else Statement 1 ..... .... Statement n End If

Диаграмма потока

пример

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

Private Sub if_demo_Click() Dim x As Integer Dim y As Integer x = 234 y = 234 If x > y Then MsgBox "X is Greater than Y" ElseIf y > x Then Msgbox "Y is Greater than X" Else Msgbox "X and Y are EQUAL" End If End Sub

Когда приведенный выше код выполняется, он производит следующий результат.

X and Y are EQUAL

Если заявление следует один или более ELSEIF заявления, который состоит из логических выражений, а затем с последующим необязательным еще заявлением, которое выполняется, когда все условия становятся ложными.

вложенные операторы if

Оператор If или ElseIf внутри другого оператора If или ElseIf. Внутренние операторы If выполняются на основе внешних операторов If. Это позволяет VBScript легко справляться с сложными условиями.

Синтаксис

Ниже приведен синтаксис инструкции Nested If в VBScript.

If(boolean_expression) Then Statement 1 ..... ..... Statement n If(boolean_expression) Then Statement 1 ..... ..... Statement n ElseIf (boolean_expression) Then Statement 1 ..... .... Statement n Else Statement 1 ..... .... Statement n End If Else Statement 1 Statement n End If

пример

Для демонстрационной цели найдем тип положительного числа с помощью функции.

Private Sub nested_if_demo_Click() Dim a As Integer a = 23 If a > 0 Then MsgBox "The Number is a POSITIVE Number" If a = 1 Then MsgBox "The Number is Neither Prime NOR Composite" ElseIf a = 2 Then MsgBox "The Number is the Only Even Prime Number" ElseIf a = 3 Then MsgBox "The Number is the Least Odd Prime Number" Else MsgBox "The Number is NOT 0,1,2 or 3" End If ElseIf a < 0 Then MsgBox "The Number is a NEGATIVE Number" Else MsgBox "The Number is ZERO" End If End Sub

Когда приведенный выше код выполняется, он производит следующий результат.

The Number is a POSITIVE Number
The Number is NOT 0,1,2 or 3

Если или ElseIf заявление внутри другого, если или ELSEIF заявление.

инструкция switch

Когда пользователь хочет выполнить группу операторов в зависимости от значения выражения, используется случай переключения. Каждое значение называется случаем, и переменная включается в зависимости от каждого случая. Оператор Case Else выполняется, если тестовое выражение не соответствует ни одному из случаев, указанным пользователем.

Case Else - необязательный оператор в Select Case, однако для хорошей практики программирования всегда есть оператор Case Else.

Синтаксис

Ниже приведен синтаксис оператора Switch в VBScript.

Select Case expression Case expressionlist1 statement1 statement2 .... .... statement1n Case expressionlist2 statement1 statement2 .... .... Case expressionlistn statement1 statement2 .... .... Case Else elsestatement1 elsestatement2 .... .... End Select

пример

Для демонстрационной цели найдем тип целого с помощью функции.

Private Sub switch_demo_Click() Dim MyVar As Integer MyVar = 1 Select Case MyVar Case 1 MsgBox "The Number is the Least Composite Number" Case 2 MsgBox "The Number is the only Even Prime Number" Case 3 MsgBox "The Number is the Least Odd Prime Number" Case Else MsgBox "Unknown Number" End Select End Sub

Когда приведенный выше код выполняется, он производит следующий результат.

The Number is the Least Composite Number

Переключатель заявление позволяет переменной быть проверены на равенство в отношении списка значений.

Похожие статьи