Овај водич ће објаснити како се креирају кориснички дефинисане функције у ВБА.
ВБА се састоји од потпроцедура и процедура функција. Поступци функција враћају вредност и могу се позвати помоћу подпроцедура или се могу користити у Екцел листу, где се вредност коју функција производи враћа у Екцел листу. Екцел, наравно, има низ уграђених функција - попут Сум функције или Иф функције. Поступци функција које пишете у ВБА користе се на сличан начин као и уграђена функција и познати су као Кориснички дефинисане функције (УДФ).
Зашто створити УДФ?
Потребна функција недостаје
Један од главних разлога за стварање УДФ-а у Екцелу је то што не постоји уграђена функција која ће уместо вас обавити задатак. Писање сопствене функције у ВБА обично је најефикаснији начин за решавање проблема. Доња функција ће претворити вредност из килограма у фунте где се користи променљиви параметар (дблКило) за добијање вредности килограма ради израчунавања.
Замените потпрограм (макро)
Могли бисте да напишете подпроцедуру (макро) да бисте решили задатак уместо вас - али подпроцедуре не враћају вредност и нису динамичке - другим речима, ако се вредности на вашем радном листу промене, мораћете поново да покренете макро како би прорачуни у макроу ажурирали ваше податке. Доња подпроцедура би такође претворила наше килограме у фунте, али сваки пут када се подаци промене у А1, морали бисте поново покренути макро да бисте ажурирали резултат.
Замените формулу
Можда имате заиста компликовану формулу у Екцелу коју морате да користите више пута - стављање формуле у ВБА код олакшава читање и разумевање - као и можда уклањање простора за грешке корисника приликом уноса формуле.
Креирање УДФ -ова
Да бисте креирали УДФ, прво додајте модул у Екцел радну свеску, или, ако имате радну свеску са личним макроима, можете или користити постојећи модул или додати нови. Да бисте то урадили, морате бити у Висуал Басиц Едитор -у (ВБЕ). Да бисте дошли до ВБЕ, притисните АЛТ + Ф11 или кликните на Висуал Басиц Оптион на картици Девелопер на траци.
САВЕТ: Ако на траци немате омогућено картицу Девелопер, идите на Датотека, опције и кликните на Прилагодите траку. Уверите се да је поље за потврду Девелопер означено и кликните на ОК.
Да бисте уметнули нови модул, изаберите ВБА пројекат у који желите да уметнете модул (или ВБА пројекат за тренутну књигу у којој радите, или личну радну свеску за макрое), кликните на Инсерт Мени и кликните Модул
Када креирате свој модул, можете почети са стварањем свог УДФ -а.
Сви УДФ -ови почињу са Функција, а затим са именом УДФ -а. Функције могу бити приватне или јавне, али обично бисте желели да УДФ буде јаван како би се појавио у дијалогу Уметање функције у Екцелу (погледајте коришћење функције из Екцел листа даље у овом чланку). Ако кључну реч Приватно не ставите испред функције, онда је функција аутоматски јавна.
123 | Функција ТестФунцтион1 (интА као цео број) као цео бројТестФунцтион1 = интА * 7Завршна функција |
Горња функција има један аргумент (интА). Можете креирати функцију са више аргумената
123 | Функција ТестФунцтион2 (интА као цео број, интБ као цео број, интЦ као цео број) као цео бројТестФунцтион2 = (интА * интБ) + интЦЗавршна функција |
Такође можете креирати функцију са опционим аргументима. Ако је аргумент изостављен, можете поставити задану вриједност за аргумент у функцији.
123 | Функција ТестФунцтион3 (интА као цео број, интБ као цео број, опционално интЦ као цео број = 10) као цео бројТестФунцтион3 = (интА * интБ) + интЦЗавршна функција |
Коришћење функције из Екцел листа
Функције које сте креирали ће се подразумевано појавити на вашој листи функција у одељку Кориснички дефинисане листе функција.
Кликните на фк да бисте приказали дијалошки оквир Уметање функције.
Изаберите Кориснички дефинисано са листе категорија
Одаберите жељену функцију од доступних Кориснички дефинисане функције.
Алтернативно, када почнете да пишете своју функцију у Екцелу, функција би се требала појавити на падајућој листи функција.
Чување функција помоћу Екцел датотеке
Пошто су функције написане у ВБА коду, разумљиво је да код мора бити доступан радној свесци да би био доступан за употребу у Екцел листу. Своје функције можете сачувати у радној свесци у којој их користите или их можете сачувати у радној свесци личних макроа. Ваша радна свеска о личним макроима је скривена датотека која је доступна сваки пут када је Екцел отворен и стога доступна за коришћење било којој радној свесци у програму Екцел. Обично се ствара када снимите макро и изаберете опцију за складиштење макроа у личној радној свесци макроа.
Ако желите да ваше функције буду сачуване у радној свесци на којој радите, мораћете да се уверите да ће, када сачувате радну свеску, бити сачувана као „Радна свеска са омогућеним макроима‘Или ан клсм филе.