3.5.1 Оператори умовного і безумовного переходу. Оператор If ... Then. Else
Перевірка умов в VBA, оператор If. Then. Else, вкладені конструкції If
Оператори умовного переходу - одні з найважливіших і часто використовуваних елементів в мовах програмування. Загальний принцип їх роботи простий: перевіряється відповідність якимось умовам (істинність або хибність будь-яких виразів) і в залежності від цього виконання програми направляється по одній або іншій гілці. У VBA передбачено два оператора умовного переходу: If ... Then. Else і Select Case.
Оператор If ... Then. Else - найпопулярніший у програмістів. Повний його синтаксис виглядає так:
If Умова Then
команди1
[ElseIf Умови N Then
Команди N]
- Умова - вираз, який перевіряється на істинність. Якщо воно істинне, то виконуються команди 1, якщо помилково - команди 2;
- УсловіяN - додаткові умови, які також можна перевірити. У разі, якщо вони виконуються (вираз УсловіяN істинно), то виконуються КомандиN.
Оператор If ... Then. Else застосовується:
- коли потрібно перевірити на відповідність одній умові і в разі відповідності зробити якусь дію:
If nTemperature <10 Then
MsgBox "Одягнути куртку"
- коли потрібно зробити те, же що і в попередньому прикладі, а в разі невідповідності виконати іншу дію:
If nTemperature <10 Then
MsgBox "Одягнути куртку"
MsgBox "Одягнути вітровку"
- коли потрібно перевірити на відповідність декільком умовам (зверніть увагу на використання логічних операторів):
If (nTemperature <10) And (bRain = True) Then
MsgBox "Одягнути куртку і взяти парасольку"
- коли в разі, якщо перша перевірка повернула False, потрібно перевірити на відповідність ще декільком умовам (в цьому випадку зручно використовувати ElseIf):
If (bIGoInCar = True) Then
MsgBox "Одягтися для машини"
ElseIf nTemperature <10 Then
MsgBox "Одягнути куртку"
MsgBox "Можна йти в сорочці"
У цьому прикладі, оскільки bIGoInCar - змінна типу Boolean і сама по собі приймає значення True або False, перший рядок може виглядати так:
If bIGoInCar Then ...
Деякі зауваження щодо використання If ... Then. Else:
- ключове слово Then має перебувати в одному рядку з If і умовою. Якщо ви перенесете його на наступний рядок, буде видано повідомлення про помилку;
- якщо розмістити команду, яку потрібно виконати при істинності перевіряється умови, на одному рядку з If і Then, то End If можна не писати:
If nTemperature <10 Then MsgBox "Одеть куртку"
If MyVar = 5 Then
MsgBox "MyVar = 5"
If MyVar = 10 Then
MsgBox "MyVar = 10"