Что такое функция пользователя(UDF)?
Что умеет Excel
Функция пользователя(UDF) — правильней, конечно, Функция, Определенная Пользователем, т.к. в оригинале она звучит как: User Defined Function.
Такие функции вызываются через диспетчер функций-категория Определенные пользователем.

Так что же это? Это функция, написанная при помощи языка Visual Basic for Application(VBA) и вызываемая как обычная функция с листа. Как это сделать. Естественно, для написания UDF понадобятся хотя бы базовые знания языка VBA. Как писать функции я не буду описывать, ибо это сводится к обучению самому языку программирования. Здесь мы рассмотрим лишь основные моменты и то, как уже написанные функции применить к своей книге.
Самое главное, что необходимо усвоить — функция пользователя:
- не может изменять значения других ячеек;
- не может изменять форматы ячеек либо присваивать форматы.
- может возвращать результат только в ту ячейку, в которой записана сама функция.
Как написать функцию
Предполагается, что Вы уже обладаете начальными навыками написания процедур в VBA и умеете создавать эти самые процедуры. Основные моменты:
- в отличие от процедуры(Sub) функция всегда начинается именно со слова Function, а не Sub;
- в теле функции всегда должно быть присвоение ей значения, иначе функция не вернет необходимый результат;
- функция должна располагаться в стандартном модуле, если Вы планируете вызывать её непосредственно с листа 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 с поддержкой макросов.

8159
