Константы, объявление, ключевое слово Const, встроенные константы, vbCrLf
Константы — еще один контейнер для хранения данных, но, в отличие от переменных, они не изменяются в ходе выполнения VBA-программы. Для чего нужны константы:
· код становится лучше читаемым/убираются потенциальные ошибки;
· чтобы изменить какое-либо значение, которое много раз используется в программе (например, уровень налога) — это можно сделать один раз.
В VBA константы определяются при помощи ключевого слова Const:
Const COMP_NAME As String = “Microsoft”
При попытке в теле процедуры изменить значение константы будет выдано сообщение об ошибке.
Константы очень удобны при работе с группами именованных элементов (дни недели, месяцы, цвета, клавиши, типы окон и т.п.). Они позволяют использовать в коде программы легко читаемые обозначения вместо труднозапоминаемых числовых кодов. Например, строки
UserForm1.BackColor = vbGreen
и
UserForm1.BackColor = 65280
функционально одинаковы, но в чем смысл первой строки, догадаться гораздо легче.
В VBA встроено множество служебных констант: календарных, для работы с файлами, цветами, формами, типами дисков и т.п. Просмотреть их можно через справочную систему VBA: Microsoft Visual Basic Documentation -> Visual Basic Reference -> Constants. Про одну из констант (она находится в разделе Miscellaneous) следует сказать особо: константа vbCrLf позволяет произвести переход на новую строку. Например:
MsgBox ("Первая строка" + vbCrLf + "Вторая строка")
Множество наборов констант встроено в объектные модели, которые мы будем рассматривать в последних разделах этого курса.
|
|
Операторы условного и безусловного перехода
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]
[Else
Команды2]
End If
При этом:
· Условие — выражение, которое проверяется на истинность. Если оно истинно, то выполняются Команды1, если ложно — Команды2;
· УсловияN — дополнительные условия, которые также можно проверить. В случае, если они выполняются (выражение УсловияN истинно), то выполняются КомандыN.
Оператор If…Then... Else применяется:
· когда нужно проверить на соответствие одному условию и в случае соответствия сделать какое-то действие:
|
|
If nTemperature < 10 Then
MsgBox "Одеть куртку"
End If
· когда нужно сделать то, же что и в предыдущем примере, а в случае несоответствия выполнить другое действие:
If nTemperature < 10 Then
MsgBox "Одеть куртку"
Else
MsgBox "Одеть ветровку"
End If
· когда нужно проверить на соответствие нескольким условиям (обратите внимание на использование логических операторов):
If (nTemperature < 10) And (bRain = True) Then
MsgBox "Одеть куртку и взять зонтик"
End If
· когда в случае, если первая проверка вернула False, нужно проверить на соответствие еще нескольким условиям (в этом случае удобно использовать ElseIf):
If (bIGoInCar = True) Then
MsgBox "Одеться для машины"
ElseIf nTemperature < 10 Then
MsgBox "Одеть куртку"
Else
MsgBox "Можно идти в рубашке"
End If
В этом примере, поскольку bIGoInCar — переменная типа Boolean и сама по себе принимает значения True или False, первая строка может выглядеть так:
If bIGoInCar Then …
Некоторые замечания по использованию If…Then... Else:
· ключевое слово Then должно находиться в одной строке с If и условием. Если вы перенесете его на следующую строку, будет выдано сообщение об ошибке;
· если разместить команду, которую нужно выполнить при истинности проверяемого условия, на одной строке с If и Then, то End If можно не писать:
|
|
If nTemperature < 10 Then MsgBox "Одеть куртку"
· если же вы используете несколько команд или конструкции Else/ElseIf, то End If в конце нужно писать обязательно — иначе возникнет синтаксическая ошибка.
· для выражения If…Then настоятельно рекомендуется использовать отступы для выделения блоков команд. Иначе читать код будет трудно.
· операторы If…Then можно вкладывать друг в друга:
If MyVar = 5 Then
MsgBox “MyVar = 5”
If MyVar = 10 Then
MsgBox “MyVar = 10”
End If
End If
5.2 Оператор Select Case
Проверка условий в VBA, оператор Select Case
Оператор Select Case идеально подходят для проверки одного и того же значения, которое нужно много раз сравнить с разными выражениями. Синтаксис его очень прост:
Select Case sDayOfWeek
Case "Понедельник"
MsgBox "Салат из шпината"
Case "Вторник"
MsgBox "Салат из морской капусты"
…
Case Else
MsgBox "На этот день у нас ничего не предусмотрено"
End Select
Некоторые замечания по поводу Select Case:
· строка Case "Понедельник" на самом деле означает Case sDayOfWeek = "Понедельник", просто такое равенство подразумевается по умолчанию. Но вам ничего не мешает использовать другой оператор сравнения или целый набор таких операторов:
|
|
Case 0 To 5, 15, Is > 55
MsgBox "Напомнить о прививках"
· Слово Is при этом можно пропустить — компилятор VBA добавит это ключевое слово за Вас. Несколько критериев в Case объединяются аналогично операторы OR — то есть выполнение пойдет по этой ветви, если тестируемое значение будет удовлетворять хотя бы одному из критериев. Критерии для сравнения разделяются запятыми.
· при использовании диапазона (0 To 5) включаются и границы диапазона (в данном случае 0 и 5).
5.3 Оператор GoTo
Дата добавления: 2018-10-27; просмотров: 325; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!