Ïîëüçîâàòåëüñêèå ôóíêöèè â 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.