A VBA programozásban a függvény egy értéket ad vissza. Funkcióeljárásokat hajthat végre, és meghívhatja a függvényt az Excel 2016-ban. A függvények az aleljárásokkal ellentétben csak kétféleképpen hajthatók végre:
Próbáld ki ezt az egyszerű funkciót. Írja be egy VBA modulba:
Függvény CubeRoot(szám)
CubeRoot = szám ^ (1/3)
Funkció befejezése
Ez a funkció elég szelíd; csupán a neki argumentumként átadott szám kockagyökét számítja ki. Ez azonban kiindulópontot ad a funkciók megértéséhez. Illusztrálja a függvényekkel kapcsolatos fontos fogalmat is: hogyan adjuk vissza az értéket. (Emlékszel, hogy egy függvény értéket ad vissza, igaz?)
Figyelje meg, hogy a függvényeljárást alkotó egyetlen kódsor számítást hajt végre. A matematika eredményét (1/3 hatványos szám) a CubeRoot változóhoz rendeljük. Nem véletlenül a CubeRoot a függvény neve is. Ha meg szeretné mondani a függvénynek, hogy milyen értéket adjon vissza, hozzá kell rendelnie ezt az értéket a függvény nevéhez.
A függvény meghívása egy aleljárásból
Mivel egy függvényt nem lehet közvetlenül végrehajtani, egy másik eljárásból kell meghívnia. Írja be a következő egyszerű eljárást ugyanabban a VBA-modulban, amely tartalmazza a CubeRoot függvényt:
Sub CallerSub()
Válasz = CubeRoot(125)
MsgBox Ans
Vége Sub
Amikor végrehajtja a CallerSub eljárást, az Excel megjelenít egy üzenetdobozt, amely tartalmazza az Ans változó értékét, amely 5.
Ez történik: A CubeRoot függvény végrehajtásra kerül, és 125-ös argumentumot kap. A számítást a függvény kódja hajtja végre (a argumentumként átadott érték felhasználásával), és a függvény visszaadott értéke az Ans változóhoz lesz rendelve. Az MsgBox függvény ezután megjeleníti az Ans változó értékét.
Próbálja meg módosítani a CubeRoot függvénynek átadott argumentumot, és futtassa újra a CallerSub makrót. Úgy működik, ahogy kellene – feltételezve, hogy a függvénynek érvényes argumentumot (pozitív számot) ad meg.
A CallerSub eljárását egyébként egy kicsit le lehetne egyszerűsíteni. Az Ans változóra nincs igazán szükség, kivéve, ha a kód a későbbiekben ezt a változót fogja használni. Ezzel az egyetlen kijelentéssel ugyanazt az eredményt kaphatja:
MsgBox CubeRoot (125)
Függvény hívása munkalapképletből
Itt az ideje, hogy meghívjuk ezt a VBA-függvény-eljárást egy munkalapképletből. Aktiváljon egy munkalapot ugyanabban a munkafüzetben, amely a CubeRoot függvénydefiníciót tartalmazza. Ezután írja be a következő képletet bármelyik cellába:
=CubeRoot(1728)
A cella 12-t jelenít meg, ami valóban az 1728 kockagyöke.
Ahogy az várható volt, a CubeRoot függvény argumentumaként cellahivatkozást is használhat. Például, ha az A1 cella értéket tartalmaz, akkor írja be a =CubeRoot(A1) parancsot . Ebben az esetben a függvény az A1-ben lévő érték kockagyökének kiszámításával kapott számot adja vissza.
Ezt a függvényt tetszőleges számú alkalommal használhatja a munkalapon. Az Excel beépített függvényeihez hasonlóan az egyéni függvényei is megjelennek a Függvény beszúrása párbeszédpanelen. Kattintson a Funkció beszúrása eszköztár gombra, és válassza ki a Felhasználó által meghatározott kategóriát. A Funkció beszúrása párbeszédpanel felsorolja a saját függvényét.

A CubeRoot függvény a Funkció beszúrása párbeszédpanel Felhasználó által meghatározott kategóriájában jelenik meg.
Ha azt szeretné, hogy a Funkció beszúrása párbeszédpanel megjelenítse a függvény leírását, kövesse az alábbi lépéseket:
Válassza a Fejlesztő → Kód → Makrók lehetőséget.
Az Excel megjeleníti a Makró párbeszédpanelt, de a CubeRoot nem jelenik meg a listában. (A CubeRoot egy függvényeljárás, és ez a lista csak az aleljárásokat mutatja.) Ne aggódjon.
Írja be a CubeRoot szót a Makró neve mezőbe.
Kattintson a Beállítások gombra.
Írja be a funkció leírását a Leírás mezőbe.
Kattintson az OK gombra a Makróbeállítások párbeszédpanel bezárásához.
Zárja be a Makró párbeszédpanelt a Mégse gombra kattintva.
Ez a leíró szöveg most megjelenik a Függvény beszúrása párbeszédpanelen.
Nézze meg a munkalapképletekben használt CubeRoot függvényt.

A CubeRoot függvény használata képletekben.