Функција | Суб
Разлика између а функција и а суб у Екцел ВБА је да функција може вратити вредност, док суб не може. Функције и претплатници постају веома корисни како се величина програма повећава.
Функција
Ако желите да Екцел ВБА изврши задатак који враћа резултат, можете користити функцију. Поставите функцију у модул (У уређивачу програма Висуал Басиц кликните на дугме Уметни, модул). На пример, функција са именом Ареа.
Подручје функција (к као двоструко, и као двоструко) као двоструко
Површина = к * и
Завршна функција
Објашњење: Ова функција има два аргумента (типа Доубле) и повратни тип (дио након Ас такођер типа Доубле). Можете користити назив функције (Ареа) у свом коду да назначите који резултат желите да вратите (овде к * и).
Сада се можете позвати на ову функцију (другим речима позвати функцију) са неког другог места у вашем коду једноставним коришћењем назива функције и давањем вредности за сваки аргумент.
Поставите командно дугме на свој радни лист и додајте следеће редове кода:
Дим з Ас Доубле
з = Површина (3, 5) + 2
МсгБок з
Објашњење: Функција враћа вриједност тако да морате 'ухватити' ову вриједност у свом коду. За ово можете користити другу променљиву (з). Затим овој варијабли можете додати још једну вредност (ако желите). На крају, прикажите вредност помоћу МсгБок -а.
Резултат је када притиснете командно дугме на листу:
Суб
Ако желите да Екцел ВБА изврши неке радње, можете користити под. Поставите подмени у модул (У уређивачу програма Висуал Басиц кликните на дугме Уметни, модул). На пример, подмени са именом Ареа.
Подподручје (к као двоструко, и као двоструко)
МсгБок к * и
Енд Суб
Објашњење: Ова подмени има два аргумента (типа Доубле). Нема повратни тип! Можете се позвати на овај суб (позвати суб) са неког другог места у свом коду једноставним коришћењем имена суб и давањем вредности за сваки аргумент.
Поставите командно дугме на радни лист и додајте следећи кодни ред:
Површина 3, 5
Резултат је када притиснете командно дугме на листу:
Можете ли видети разлику између функције и подлоге? Функција је вратила вредност 15. Овом резултату смо додали вредност 2 и приказали коначни резултат. Када смо позвали суб нисмо имали више контролу над резултатом (15) јер суб не може вратити вриједност!