Функции host-приложений
Функции host-приложения, доступные для VBA, не являются частью VBA, они являются частью host-приложения. Например, функции рабочих листов Excel не являются частью программирования языка VBA, но они являются частью host-приложения Excel. Не каждое host-приложение VBA содержит функции, которые можно использовать в VBA. Отсюда, если вы собираетесь использовать процедуры в различных приложениях, не стоит использовать функции host-приложения.
Чтобы использовать функцию host-приложения необходимо обратиться к ней посредством программного объекта Application. Например:
MsgBox Application.Min(1, 5, 7, 9)
Обратите внимание, что за словом Application следует точка (точка-разделитель), а затем имя функции без пробелов.
Результат функции Excel нельзя игнорировать. Необходимо всегда включать круглые скобки в вызов функции Excel и всегда каким-то образом использовать результат функции: как значение в выражении, аргумент для другой функции и проч.
Функции host-приложения, имеющие те же имена, что и функции VBA, не обязательно выполняют те же самые задачи и выдают те же самые результаты. Например, Excel-функция LOG и VBA-функция LOG - это не одно и то же.
Следует также иметь в виду, что не каждая функция host-приложения доступна VBA. Для проверки доступности функции необходимо воспользоваться инструментом Object Browser среды VBA. Чтобы узнать, какие функции имеются в приложении и узнать, каково назначение и как использовать эти функции, необходимо обратиться к справочной системе приложения (например, произвести поиск по слову functions).
В заключение скажем о полезном дополнительном свойстве функции InputBox приложения Excel, которого нет в VBA. InputBox в Excel имеет необязательный параметр Type, задающий тип вводимого значения. Это можно использовать в качестве дополнительного контроля вводимой информации.
Праметр Type может принимать следующие значения:
Значение | Что означает |
0 | Формула |
1 | Число |
2 | Текст |
4 | Логическое значение |
8 | Ссылка на ячейку, как объект диапазона |
16 | Значение ошибки, такое как #N/A |
64 | Массив значений |
Можно использовать в качестве аргумента Type сумму доступных значений. Например, для ввода как такстовых, так и числовых значений можно задавать значение 3 (1+2).