Версия для печати

Что такое функция пользователя(UDF)?

Что умеет Excel

 

Функция пользователя(UDF) — правильней, конечно, Функция, Определенная Пользователем, т.к. в оригинале она звучит как: User Defined Function.

Такие функции вызываются через диспетчер функций-категория Определенные пользователем.

Так что же это? Это функция, написанная при помощи языка Visual Basic for Application(VBA) и вызываемая как обычная функция с листа. Как это сделать. Естественно, для написания UDF понадобятся хотя бы базовые знания языка VBA. Как писать функции я не буду описывать, ибо это сводится к обучению самому языку программирования. Здесь мы рассмотрим лишь основные моменты и  то, как уже написанные функции применить к своей книге.

Самое главное, что необходимо усвоить — функция пользователя:

  1. не может изменять значения других ячеек;
  2. не может изменять форматы ячеек либо присваивать форматы.
  3. может возвращать результат только в ту ячейку, в которой записана сама функция.

Как написать функцию

Предполагается, что Вы уже обладаете начальными навыками написания процедур в VBA и умеете создавать эти самые процедуры. Основные моменты:

  1. в отличие от процедуры(Sub) функция всегда начинается именно со слова Function, а не Sub;
  2. в теле функции всегда должно быть присвоение ей значения, иначе функция не вернет необходимый результат;
  3. функция должна располагаться в стандартном модуле, если Вы планируете вызывать её непосредственно с листа Excel.
Function MySum(vArg1 As Double, vArg2 As Double)
    MySum = vArg1 + vArg2
End Function
Function MySum(vArg1 As Double, vArg2 As Double)
    MySum = vArg1 + vArg2
End Function

В приведенном выше коде мы упростили стандартную функция СУММ до двух аргументов. Записанная на лист функция будет иметь такой вид: =Mysum(A1;A2). A1 — первый аргумент(vArg1)A2 — второй аргумент(vArg2). Функция вернет #ЗНАЧ!, если в качестве одного из аргументов передано не числовое значение.

Как вставить уже имеющийся код функции к себе в книгу

Для начала необходимо создать стандартный модуль. Затем в этот модуль вставить через копирование(или записать вручную) имеющийся код. Все, теперь функция доступна из диспетчера функций.

Если Вы используете версию Excel 2007 и выше, то книгу необходимо будет сохранить с поддержкой макросов: Меню-Сохранить как-Книга Excel с поддержкой макросов.



Поддержать автора сайта
Поделиться ссылкой
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.

Комментарий будет добавлен после проверки администратором.
Комментарии, не имеющие отношения к комментируемой статье, будут удаляться без уведомления и объяснения причин. Если есть вопрос по проблеме в Excel- добро пожаловаться на Форум