Select case vba excel описание. Операторы ветвления VBA: сложный выбор. Безусловный переход. Синтаксис оператора VBA Select Case

В Visual Basic for Application (VBA) существует несколько способов изменения порядка выполнения инструкций. Управляющие структуры VBA во многом схожи с подобными структурами в других языках программирования.

Основные управляющие структуры VBA:

  • If Then Else "End If
  • For Next
  • While Wend
  • Do Loop
  • Select Case "End Select
  • For Each Next

    Управляющая инструкция If Then Else "End If
    Эта инструкция изменяет порядок выполнения инструкций в зависимости от результатов проверки заданного условия (или набора условий)

    Пример:

    Sub TestIfThen()

    iData = "pashulka"

    If iData = "Excel" Then
    MsgBox "Этого сообщения Вы не увидите никогда!!!"
    ElseIf iData = "Office" Then
    MsgBox "К сожалению, этого сообщения Вы тоже не увидите!!!"
    Else
    MsgBox "Это сообщение появится в любом случае",iData
    End If

    Комментарии:
    If - ключевое слово, означающее начало проверки
    iData - переменная, значение которой будет проверяться
    Then - ключевое слово, означающее конец проверки
    MsgBox - сообщение
    ElseIf - ключевое слово, означающее начало новой проверки
    Then - ключевое слово, означающее конец дополнительной проверки
    MsgBox - сообщение
    Else - ключевое слово, означающее конец блока инструкций, выполняемых при положительном результате проверки, и начало блока инструкций, выполняемых при отрицательном результате.
    MsgBox - сообщение
    End If

    В инструкции If Then Else "End If ключевые слова ElseIf и Else являются необязательными.

    Управляющая инструкция For Next
    Эта инструкция позволяет выполнять определённые действия нужное количество раз. Такие инструкции, как правило, называют циклами.

    Пример:

    Sub TestForNext()

    For iCount = 1 To 100 Step 2
    i = i + 1
    Next

    Комментарии:
    For
    iCount - переменная, определяющая число повторений цикла.
    1 - начальное значение счётчика
    To - ключевое слово, разделяющее начальное и конечное значение счётчика
    100 - конечное значение счётчика
    Step - ключевое слово, определяющее шаг счётчика
    2 - шаг счётчика (число)
    Next - ключевое слово, при достижении которого значение счётчика изменяется на величину шага, после чего управление опять переходит в начало цикла.
    MsgBox

    В инструкции For Next ключевое слово Step является необязательным. При его отсутствии, шаг выполнения счётчика будет равен 1.

    важно Шаг счётчика обязательно должен быть числом. Если шаг счётчика указан в виде отрицательного числа, то тогда значение счётчика будет с каждым циклом будет уменьшаться.

    Пример, с обратным отсчётом:

    Sub TestForNext2()

    For iCount = 300 To 1 Step -3
    i = i + 1
    If iCount = 153 Then Exit For
    Next iCount

    MsgBox "Число повторений: " & i

    Обратите внимание на:
    If iCount = 153 Then - в этом VBA коде мы применили уже известную нам инструкцию If Then Else
    Exit For
    Next iCount - в коде присутствует переменная (счётчик), который располагается после ключевого слова. Подобный синтаксис используется, как правило, для визуального определения конца цикла, если в VBA коде присутствует достаточно много подобных инструкций.

    Управляющая инструкция While Wend
    Эта инструкция позволяет выполнять определённые действия до тех пор, пока соблюдается заданное условие.

    Пример:

    Sub TestWhileWend()

    While iCount iCount = iCount + 1
    Wend

    Комментарии:
    While - ключевое слово, означающее начало цикла
    iCount - условие, при соблюдении которого будет выполняться эта инструкция
    Wend
    MsgBox - сообщение о количестве повторений

    Управляющая инструкция Do Loop
    Эта инструкция позволяет выполнять определённые действия не только до тех пор, пока соблюдается заданное условие, но и наиборот, пока не будет выполнено заданное условие.

    Пример:

    Sub TestDoLoop()

    Do Until iCount >= 100
    iCount = iCount + 1
    Loop

    MsgBox "Число повторений: " & iCount

    Комментарии:
    Do - ключевое слово, означающее начало цикла
    Until - ключевое слово, означающее наличие условия
    iCount >= 100 - условие, при соблюдении которого будет выполняться эта инструкция
    Loop - ключевое слово, означающее конец цикла
    MsgBox - сообщение о количестве повторений

    Sub TestDoLoop2()

    Do
    iCount = iCount + 1
    If iCount = 50 Then Exit Do
    Loop Until iCount = 100

    MsgBox "Число повторений: " & iCount

    Обратите внимание на:
    If iCount = 50 Then - в этом VBA коде мы опять применили уже известную нам инструкцию If Then Else
    Exit Do - инструкция означающая досрочный выход из цикла
    iCount = 100 - условие, при соблюдении которого будет выполняться эта инструкция

    Примечание:
    Условие заданное в конце цикла гарантирует, что он будет выполнен хотя бы один раз. Будьте осторожны с инструкциями While Wend, Do Loop, так как при некорректном задании условия, Вы можете получить практически perpetuum mobile.

    Управляющая инструкция Select Case "End Select
    Эта инструкция в зависимости от результатов значения переменной или выражения выполняет один из нескольких фрагментов кода.

    Пример:

    Sub TestSelectCase()

    Select Case iNumeric
    Case 1

    Case 2, 5
    MsgBox "Это сообщение Вы не должны увидеть"
    Case 10 To 13
    MsgBox "Это сообщение Вы не должны увидеть"
    Case Is > 14
    MsgBox "Именно это сообщение Вы и должны увидеть"
    Case Else
    MsgBox "Это сообщение появится, если переменная будет End Select

    Комментарии:
    Select Case
    iNumeric - переменная или выражение, значение которой определяет выбор фрагмента VBA кода для выполнения
    Case 1 - первый вариант значения для сравнения.
    Если значение переменной совпадёт с ним, то будет выполнен фрагмент кода следующий за Case, но до следующего ключевого Case, затем инструкция завершит свою работу. В противном случае проверка продолжится.
    Case 2, 5 - второй вариант значения.
    Case 10 To 13 - третий вариант значения.
    Case Is > 14 - четвёртый вариант значения.
    MsgBox - сообщение, которое будет выведено в данном случае
    Case Else - ключевые слова, означающее выполнение кода, если ни одно из предыдущих вариантов не совпало.
    End Select - ключевое слово, означающее конец инструкции

    В инструкции Select Case "End Select ключевое слово Case Else является необязательным.

    Управляющая инструкция For Each Next
    Эта инструкция позволяет выполнять определённые действия с каждым об"ектом семейства или элементом массива.

    Пример с об"ектом Range:

    Sub TestForEachNextRange()


    i = i + 1
    iCell.Value = "Ячейка # " & i
    Next

    MsgBox "Число ячеек: " & i

    Комментарии:
    For Each - ключевые слова, означающее начало инструкции
    iCell - переменная, которой присваиваются значения элементов группы (массива или семейства) Для работы с элементами массива переменная должна принадлежать к типу Variant.
    In - ключевое слово, отделяющее переменную от группы
    Range("A1:C5") - группа, т.е. массив или семейство об"ектов. Количество повторений цикла зависит от числа элементов, входящих в группу. При первом выполнении цикла переменной присваивается значение самого первого элемента группы, а затем, всех последующих.
    Next - ключевое слово, при достижении которого управление опять переходит в начало цикла.
    MsgBox - сообщение о количестве элементов группы.

    В данном случае использовать подобный подсчёт числа ячеек в об"екте Range является не лучшим способом, так как у этого об"екта существует свойство, которое справится с этой задачей гораздо лучше: Об"ект Range: его свойства и методы


  • Пример манипуляции с об"ектом Range:

    Sub TestForEachNextRangeChanges()

    For Each iCell In Range("A1:C5")

    i = i + 1: iCell.Value = i

    If iCell.Value 5 Then
    iCell.Font.Size = 15
    iCell.Interior.ColorIndex = 50
    ElseIf iCell.Value = 13 Or iCell.Value = 5 Then
    iCell.Font.Size = 20
    iCell.Interior.ColorIndex = 3
    Else
    iCell.Clear
    End If

    Обратите внимание на:
    - в этом VBA коде для проверки значений находящихся в ячейке мы применили уже известную нам инструкцию If Then Else.
    - в зависимости от того какое условие прошло проверку, выполняется определённый фрагмент кода, который использует различные свойства об"екта Range.

    Пример с семейством WorkSheets:

    Sub TestForEachNextSheet()

    For Each iList In Worksheets
    i = i + 1
    iNameList = iNameList & Chr(10) & iList.Name
    Next

    MsgBox "Число рабочих листов: " & i & Chr(10) & _
    "Имена рабочих листов: " & iNameList

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

    And in today’s post we will discuss about VBA select case statement. VBA Select Case can be used instead of complex Excel Nested If statements. This makes the VBA code faster to execute and easier to understand.

    Select-Case statement (also called as Switch Case in some languages) checks a variable or an expression for different cases (values). If anyone of the case becomes true then only that case is executed and the program ignores all other cases.

    If you remember in our last post we talked about, “how you can ”.

    Syntax of VBA Select Case Statement:

    The Syntax is as under:

    Select Case Condition
    Case value_1
    Code to Execute When Condition = value_1
    Case value_2
    Code to Execute When Condition = value_2
    Case value_3
    Code to Execute When Condition = value_3
    Case Else
    Code to Execute When all the other cases are False
    End Select

    Here, ‘Condition ’ refers to the variable or the expression that is to be tested and based on which anyone of the code segments will be executed.

    ‘value_1 ’, ‘value_2 ’ and ‘value_3 ’ are the possible outcomes of the ‘Condition’. Whenever anyone of these values matches the ‘Condition’ then its corresponding Case block will execute.

    ‘Else’ is a kind of default case value, which will only execute when all the above Case statements result into False. ‘Else’ case is optional but generally it is considered a good practice to use it.

    Examples of Select-Case in VBA:

    Now let’s move on to some practical examples of case Statements.

    Example 1: Select Case Statement with an Expression.

    In the below example, we have supplied a condition (i.e. a=b) to the Select Case statement. If this is True then ‘Case True’ block will be executed and if it is False then ‘Case False’ block will execute.

    Sub Select_Case_Example() "Enter the value for variables a = InputBox("Enter the value for A:") b = InputBox("Enter the value for B:") " Evaluating the expression Select Case a = b Case True MsgBox "The expression is TRUE" Case False MsgBox "The expressions is FALSE" End Select End Sub

    Note: In this code is used for getting values from user.

    Example 2: Case statement to check Text Strings

    In this example we will compare text strings in the Case statements. If a match is found then the corresponding case block will execute otherwise the ‘Case Else’ block will execute.

    Sub Select_Case_Example() "Enter the value for variables fruit_name = InputBox("Enter the fruit name:") " Evaluating the expression Select Case fruit_name Case "Apple" MsgBox "You entered Apple" Case "Mango" MsgBox "You entered Mango" Case "Orange" MsgBox "You entered Orange" Case Else MsgBox "I didn"t knew this fruit!" End Select End Sub

    Example 3: Case statement to check numbers

    In the below example we will check if the number entered by user is less than or greater than 5.

    Sub Select_Case_Example() "Enter the value for variables Num = InputBox("Enter any Number between 1 to 10:") " Evaluating the expression Select Case Num Case Is < 5 MsgBox "Your Number is less than 5" Case Is = 5 MsgBox "Your Number is Equal to 5" Case Is > 5 MsgBox "Your Number is greater than 5" End Select End Sub

    Note: You can use IS keyword with Case Statement to compare values.

    Example 4: Select Case statement to check multiple conditions inside a single case.

    In this example we will ask the user to enter any number from 1-10. And then we will check if the number is even or odd by using multiple conditions in the case statement. Notice here I have used a “,” (comma) to compare multiple conditions in a single case.

    Sub Select_Case_Example() "Enter the value for variables Num = InputBox("Enter any Number between 1 to 10:") " Evaluating the expression Select Case Num Case 2, 4, 6, 8, 10 MsgBox "Your Number is Even." Case 1, 3, 5, 7, 9 MsgBox "Your Number is Odd." Case Else MsgBox "Your Number is out of the range." End Select End Sub

    Note: I know that there are easier methods to check if a number is even or odd, but I have used this example only for explaining how you can check multiple conditions inside a single case statement.

    Example 5: Case statement to check a continuous range as condition.

    Here we will test a continuous range as a condition. We will ask the user to enter any number between 1-10, if the number is between 1 to 5 (including both 1 and 5) then ‘Case 1 To 5’ will be ‘True’, if the number entered by the user is between 6 and 10 (including both 6 and 10) then ‘Case 6 To 10’ will be ‘True’, if both the previous cases are ‘False’ then ‘Case Else’ will be executed.

    Sub Select_Case_Example() "Enter the value for variables Num = InputBox("Enter any Number between 1 to 10:") " Evaluating the expression Select Case Num Case 1 To 5 MsgBox "Your Number between 1 to 5" Case 6 To 10 MsgBox "Your Number between 6 to 10" Case Else MsgBox "Your Number is out of the range." End Select End Sub

    So, this was all about VBA Select Case Statement. Feel free to share your thoughts about this topic.

    About Ankit Kaul

    Ankit is the founder of Excel Trick. He is tech Geek who loves to sit in front of his square headed girlfriend (his PC) all day long. :D. Ankit has a strong passion for learning Microsoft Excel. His only aim is to turn you guys into "Excel Geeks".

    Наиболее важные операторы условия, используемые в 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 .

    ЯЗЫК ПРОГРАММИРОВАНИЯ VISUAL BASIC. ПРОГРАММИРОВАНИЕ ВЕТВЛЕНИЙ

    Ветвление в Visual Basic организуется с использованием:

    • условного оператора IF;
    • встроенной функции IIF;
    • оператора выбора CASE.

    Для проверки одного условия и выполнения оператора или блока операторов используется условный оператор IF...THEN . Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).

    Линейный оператор имеет следующий синтаксис:

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

    Блочный оператор имеет следующий синтаксис:

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

    Если заданное условие имеет значение True, выполняется блок операторов, в противном случае - блок операторов2. Если предложение Else не задано, при не выполнении условия управление сразу же передается следующему после If оператору.

    Оператор If может быть вложенным, т. е. находиться внутри блоков операторов. Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется расширенный условный оператор вида:

    If <условие 1> Then
    <блок операторов 1>
    Elself <условие 2> Then
    <блок операторов 2>
    Elself <условие n> Then
    <блок операторов n>
    End If

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

    IIF (<условие>, <значение1>, <значение2>)

    Эта функция возвращает значение1, если условие истинно, и значение2, если условие ложно.

    В качестве условия можно использовать логическое выражение, возвращающее значение True (Истина) или

    False (Ложь), или любое арифметическое выражение (нулевое значение эквивалентно False, а ненулевое - True).

    Оператор выбора SELECT CASE используется для проверки одного условия и выполнения одного из нескольких блоков операторов.

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

    Select Case <проверяемое выражение>
    Case <список выражений 1>
    <операторы 1> Case <список выражений 2>
    <операторы 2> Case <список выражений 3>
    <операторы 3>
    Case Else
    <операторы группы Else>
    End Select

    Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).

    Список выражений - одно или несколько выражений, разделенных стандартным символом - разделителем (точкой с запятой).

    При выполнении оператора проверяется, соответствует ли хотя бы один из элементов этого списка проверяемому выражению.

    Эти алименты списка выражений могут иметь одну из следующих форм:

    • <выражение> - проверяет совпадение заданного выражения с одним из выражений - элементов списка;
    • <выражение 1> То <выражение 2> - проверяет попадание заданного выражения в указанный диапазон;
    • < Is <логический оператор> < выражение> - проверяет выполнение указанного условия для заданного выражения.

    Условия являются очень полезными при программировании, поскольку позволяют нам выполнять действия, в зависимости от установленных критериев (используется такой же принцип как и в 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