Кроме перечисленных выше основных категорий функций в VBA имеются также функции выбора, которые дублируют некоторые аспекты операторов условного перехода. Ниже приведены эти функции.
Функция
Возвращаемое выражение
Iif
Возвращает одну из двух альтернатив.
Синтаксис:
IIf(expr, truepart, falsepart)
· expr — проверяемое выражение
· truepart — значение или выражение, возвращаемое, если ехрг имеет значение True
· falsepart — значение или выражение, возвращаемое, если ехрг имеет значение False
В следующем примере, если значение переменной ОценкаЦифрой равно 5, то переменной ОценкаПрописыо присваивается строковая константа Отлично. В противном случае ей присваивается значение
Не отлично:
ОценкаПрописыо = Ilf(ОценкаЦифрой = 5, "Отлично", if
"Не отлично")
Choose
Возвращает значение, выбранное из списка аргументов.
Синтаксис:
Choose(индекс, вариант-1[, вариант-2, ... [, вариант-п]])
· индекс — числовое выражение или поле, значением которого является число, лежащее между 1 и числом элементов в списке
· вариант — выражение типа Variant, содержащее один из элементов списка
Действие функции choose: если индекс равняется 1, возвращается первый элемент списка, если индекс равняется 2, возвращается второй элемент списка и т. д.
Функцию choose можно использовать для выбора одного из возможных значений, представленных в виде списка. В следующем примере, если аргумент Выбор принимает значение 3, то переменной РезультатВыборы присваивается значение "три": РезультатВыборы = Choose(Выбор, "один", "два", "три")
Switch
Возвращается значение, соответствующее первому истинному выражению в списке.
Синтаксис:
Switch(выражение-1, значение-1[, выражение-2, значение-2 [, выражение-n, значение-п]])
· выражение — выражение типа Variant, подлежащее вычислению
· значение — возвращаемое значение или выражение, если соответствующее выражение принимает значение True
В следующем примере функция по указанной фамилии возвращает название должности сотрудника некоторой фирмы: Должность = Switch(Фамилия = "Парижский", "Президент", _ Фамилия = "Быстрое", "Менеджер", _ Фамилия = "Курочкина", "Референт")
Некоторые функции имеют по две версии, одна из которых возвращает тип данных variant а другая — тип данных String. Первая версия является более удобной, так как при этом для значений типа variant преобразование типов данных выполняется автоматически. Вторая версия, возвращающая тип string, использует меньше памяти и может быть полезна в следующих случаях:
· Для экономии памяти, если в программе имеется очень много переменных
· При выполнении прямой записи данных в файлы с произвольным доступом
Перечисленные ниже функции возвращают значения типа string, если к их имени добавляется символ доллара ($). Эти функции имеют такое же применение и синтаксис, как и их эквиваленты без символа доллара, возвращающие тип Variant.