Пользовательские функции в Excel
Функции-процедуры с некоторыми ограничениями на их действия называются определенными пользователем функциями (сокращенно UDF - user-defined functions), и только их может использовать Excel в формуле ячейки рабочего листа.
ВНИМАНИЕ! UDF не может никоим образом изменять среду Excel.
Это означает, что определенная пользователем функция не может выбирать, вставлять, удалять или форматировать никакие данные в рабочем листе, а также не может добавлять, удалять или переименовывать листы или рабочие книги.
Обычно определенная пользователем функция должна только выполнять вычисления или манипулирование на основе данных, полученных из ее списка аргументов или выбранных из Excel. Например, всем этим требованиям соответствует наша функция SLen, рассмотренная на предыдущем уроке, поэтому, ее можно использовать как определенную пользователем функцию.
При написании функций-процедур для использования в качестве UDF в рабочих листах Excel необходимо знать несколько фактов, помимо общих требований для определенных пользователем функций:
- Определенные пользователем функции, которые будут использоваться в Excel, не должны иметь имена, похожие на записи ссылок на ячейку (например, А2; С1В5);
- Любые строковые данные, возвращаемые из VBA в Excel, не должны иметь более 255 символов в длину. Если UDF возвращает строку, имеющую больше 255 символов в длину, в ячейку рабочего листа, Excel укорачивает строку до максимальной длины 255 символов перед вставкой в ячейку;
- При написании UDF, возвращающей значение даты для Excel убедитесь, что задаете тип результата функции как Date. Excel применяет формат Date для результата функции в ячейке рабочего листа только, если результат имеет VBA-тип Date.