Урок 12 по VBA -Оператор if

Урок 12 по VBA -Оператор if Макросы на VBA

Использование условного оператора неотъемлемая часть практически любого языка программирования. И фактически, все исходит от математики, так как изначально, языки программирования формировались как средства для решения различных задач. Скажу сразу, статья скучная и неинтересная :) Так как выжать что новое из программирования, в частности из описания операторов просто физически невозможно, но я что-то да придумаю. И так, в языке VBA для проверки условий используется оператор if, который может существовать в нескольких вариациях. Но сперва, немного юмора….

vba if then

Бежит заяц по лесу и видим медведя, читающего книгу. Заяц спрашивает: “Косолапый, ты что читаешь?” Тот с умным видом отвечает: “Логику”. Косой с удивленным видом спрашивает “А что такое логика?” “Ну смотри” – говорит медведь:

  • М: У тебя спички есть?
  • З: Нет
  • М: Значит, ты не куришь
  • З: Да!
  • М: Если ты не куришь, значит, нет лишних трат денег
  • З: Верно!
  • М: Значит, ты ходишь по девкам?
  • З: Конечно!
  • М: А раз ты ходишь по девкам, значит, ты не импотент!
  • З: Снова верно!

Заяц обрадовался столь умной книге и попросил почитать ее у косолапого. Идет по лесу довольный и радуется, тут ему навстречу волк идет. Заяц решил испробовать логику на сером и спрашивает его:

  • З: У тебя спички есть?
  • В: Да
  • З: Значит ты импотент!

Хорошо, теперь давайте приступим к теории…

Вариант 1. Самый простой вариант использования условного оператора VBA if, это когда идет проверка условия, и если оно выполняется, то идет выполнение одного выражения:

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

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

If условие then

Выражение 1

Выражение 2

Выражение N

End If

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

Вариант 3: Чтобы не создавать вложенных условных операторов, используется следующая конструкция:

If условие then

Выражение 1

Else

Выражение 2

End if

Тут все предельно просто, если условие истинно, выполняется первое выражение, если нет – второй. Стоит помнить, что после проверки условия могут следовать несколько операторов, как в варианте выше.

Вариант 4: Проверка нескольких условий:

If условие 1 then

Выражения 1

ElseIf условие 2 then

Выражения 2

ElseIf условие 3 then

Выражения 3

….

[else]

End if

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

if then else vba - результат

Хорошо, теперь напишем простой пример использования конструкции VBA if then. Создайте форму в редакторе Visual Basic for Applications и добавьте на ее поверхность три текстовые метки (объект Label) и одну кнопку (объект CommandButton). В редакторе кодапропишем:

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 = "Сумма достигла значения 1000"
        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 происходит использование цикла VBA do loop, условие выполнение цикла – значение переменной MySumm должно быть меньше или ровно 10000. В теле самого цикла используются операторы VBA if then с несколькими вариантами. Происходит проверка условий: если сумма достигла значения 10, то записать в первое текстовое поле одну информацию, если 100 – другую информацию, если 1000 – третью информацию, в противном случае – записать данные в свойство Caption четвертого текстового поля.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий