Excel VBA felhasználó által definiált funkció (UDF)
A Microsoft számos beépített funkcióval szolgál, hogy felgyorsítsuk a munkát az excelben. A VBA kódolással azonban létrehozhatunk saját függvényeket, amelyeket technikailag „Felhasználó által definiált funkcióknak (UDF) nevezünk . Az Excel VBA-ban „egyedi funkciókként” is hívják őket.
Bármely képletet, amelyet a munkalapról egy kódrészlettel elérhetünk, UDF-nek hívjuk. Egyszerűbben fogalmazva, minden olyan képletet, amely nem beépített, de elérhető az Excelben, Felhasználó által definiált függvényeknek nevezünk.

Hogyan lehet létrehozni a felhasználó által definiált függvényeket?
Annak ellenére, hogy az UDF a modulunk része, nem tartoznak a VBA rendszeres alprogramjához. Ezt nevezik Function Procedure-nek a VBA-ban. Mint ahogyan a makrokódolást is hasonlóan kezdjük a SUB szóval, ezt a „Funkció” szó használatával is el kell kezdeni. Az al eljárásnak van kezdete és vége, hasonlóan a Funkcióeljárásához, mint kezdetének és végének.
1. példa - Hozzon létre egy egyszerű UDF összeg függvényt
Az Excelben létrehozzuk a saját SUM függvényünket két szám összeadásával.
- A kódolás megkezdéséhez indítsa el a „Funkció” szót az egyik modulban.

- Mint ahogy a makrót is hasonlóan nevezzük meg, nevet kell adnunk a Funkciónknak is. Ezt a nevet képletnévként használják.

A szubrutintól eltérően nem tudunk egyszerűen megnyomni az Enter billentyűt egy eljárás létrehozásához, de itt meg kell említenünk az érveket.
Nézze meg például a SUM munkalapfüggvény alábbi szintaxisát.
Az 1. szám, a 2. szám a SUM függvény argumentumai.
- Hasonlóképpen meg kell említenünk érveinket.

Itt az argumentumokat „x egész számnak” és „y egész számnak” deklaráltam. Mivel számértéket adunk hozzá, az adattípust csak numerikus adattípusként kell hozzárendelnünk.
Az argumentumok deklarálása után hozzárendeltem az Integer visszatérési típusát is, mert a „OurSum” függvény által megadott eredmény számszerű érték is.
- A funkcióban most meg kell említenünk a képletet, amelyet használni fogunk. Itt ki kell használnunk a függvényt a kezdéshez.

Említettük, hogy a „ OurSum ” képletnek hozzá kell adnia x és y értékeket .
- Ok, mentse el a kódot, és lépjen a munkalapra.

- Ide írtam néhány számot. Nyissa meg az egyenlőségjelet, és kezdje el beírni a OurSum szót. Itt láthatja a képlet nevét.

- Hasonlóan a cellák kiválasztásához, hasonlóan válasszunk két cellát külön-külön.

- Miután kiválasztott két cellát, nyomja meg az Enter billentyűt az eredmények eléréséhez.

Tehát pontosan ugyanúgy működik, mint a szokásos SUM függvényünk.
- Ok, most megváltoztatom a számokat.

- Most ismét alkalmazom az általunk létrehozott funkciót.

Oh !!! Hibaértékeket kaptunk, kivéve az első cellát.
Biztos azon gondolkodik, miért kaptunk hibát.
Ha megfigyeli az A2 és B2 cellát, akkor a 48170 és a 21732 értékekkel rendelkezünk. Mivel az adattípust egész számnak rendeltük el, az nem tartalmazhat több számot, mint 32767. Ezért kaptuk az excel hibát # SZÁM! -Ként.
Most hozzáadok 32767-nél kisebb számokat.

A fenti képen az összes szám egész szám, azaz kevesebb, mint 32767.
Az első cellában megkaptuk az eredményeket. De a második cellában, azaz a C2 cellában a hibaértéket # ÉRTÉK!
Annak ellenére, hogy mindkét szám kevesebb, mint 32767, mégis megvan a hiba.
Ennek oka, hogy a végeredményt szintén egész számnak nyilvánítottuk.

Tehát amikor hozzáadjuk a 16000-et és az 17229-et, akkor kapunk egy olyan értéket, mint a 33229, ami meghaladja a 32767-es egész adattípus-határértéket.
2. példa - Hozzon létre egy funkciót a logikai értékek teszteléséhez
Hozzunk létre még egy függvényt a logikai értékek tesztelésére. Szükségünk van egy olyan függvényre, amely „Jó” -val tér vissza, ha a szám> = 60, és az eredményre „Rossz” -ra van szükség, ha a szám <= 50.
1. lépés: Indítsa el a Funkcióeljárást, és adjon nevet az eljárásnak.

2. lépés: Adja meg az argumentumot mint TestScore egész számként.

3. lépés: A végeredményünk legyen „jó” vagy „rossz”, tehát az eredménynek karakterláncban kell lennie.
4. lépés: Először tesztelnünk kell, hogy a pontszám> = 60 vagy sem. A teszteléshez használja az IF feltételt.

5. lépés: Ha a teszt pontszáma> = 60, akkor szükségünk van arra a funkcióra, hogy az eredményt „Jó” -nak adja vissza. Tehát TestResult = “Jó”.

6. lépés: Ha a teszt pontszáma kevesebb, mint 60, akkor a funkció eredményének „Rossznak” kell lennie.

Ok, készen vagyunk.
- Mentse el a kódot, és lépjen a munkalapra.

Ide írtam néhány számot teszt pontszámként.
- Az eredmények eléréséhez alkalmazza az általunk létrehozott függvényt.

- Válassza ki a cellát, és nyomja meg az Enter billentyűt.

Erről szól az UDF.