В VBA предусмотрено несколько функций, которые позволяют заменять синтаксические конструкции условного перехода, например if.. .Then.. .Else или Select Case. Каких-то преимуществ применение этих функций не дает (может быть, код станет на несколько строчек короче), но профессиональные программисты очень любят их использовать.
Начинающим программистам рекомендуется применять обычные синтаксические конструкции, чтобы не путаться. Однако для чтения чужого кода необходимо знать и эти функции.-
r Choose() — принимает число (номер значения) и список значений. Возвращает значение из списка, порядковый номер которого соответствует передаваемому числу.
Например, вызов функции:
Choose(2, "Первый", "Второй", "Третий")
вернет "второй".
r Iif() — расшифровывается как Immediate If, т. е. "немедленный If. Представляет собой упрощенный вариант if.. .Else, когда проверяется условие и возвращается одно из двух значений. Например:
Iif(п > 10, "Больше десяти", "Меньше или равно десяти")
r Switch() — принимает неограниченное количество пар типа "выражение = значение", проверяет каждое выражение на истинность и возвращает значение для первого выражения, которое оказалось истинным. Например:
Function Language (CityName As String)
Language = Switch(CityName = "Москва", "русский", CityName = _ "Париж", "французский", CityName = "Берлин", "немецкий")
End Function