Excel VBA lietotāja definēta funkcija (UDF)
Microsoft mums kalpo ar daudzām iebūvētām funkcijām, lai paātrinātu Excel darbu. Tomēr, izmantojot VBA kodēšanu, mēs varam izveidot savas funkcijas, un šīs funkcijas tehniski sauc par “User-Defined Functions” (UDF). Excel VBA tās sauc arī par “pielāgotajām funkcijām”.
Jebkuru formulu, kurai var piekļūt no darblapas ar koda fragmentu, sauc par UDF. Vienkārši sakot, jebkuru formulu, kas nav iebūvēta, bet ir pieejama programmā Excel, sauc par lietotāja definētām funkcijām.

Kā izveidot lietotāja definētas funkcijas?
Kaut arī UDF ir daļa no mūsu moduļa, tie nav daļa no mūsu parastās VBA apakšprogrammas. To VBA sauc par funkciju procedūru. Tāpat kā līdzīgi kā mēs sākam makro kodēšanu ar vārdu SUB, mums tas jāsāk, izmantojot vārdu “Funkcija”. Apakšprocedūrai ir sākums un beigas, līdzīgi kā Funkcijas procedūrai ir Sākums un Beigas.
1. piemērs - izveidojiet vienkāršu UDF summas funkciju
Mēs izveidosim savu SUM funkciju programmā Excel, saskaitot divus skaitļus.
- Lai sāktu kodēšanu, vienā no moduļiem sāciet vārdu “Funkcija”.

- Tāpat kā tas, kā mēs makro nosaucam līdzīgi, arī mūsu funkcijai ir jāpiešķir nosaukums. Šis nosaukums tiek izmantots kā formulas nosaukums.

Atšķirībā no apakšprogrammas, lai izveidotu procedūru, mēs nevaram vienkārši nospiest taustiņu Enter, taču šeit jāpiemin argumenti.
Piemēram, apskatiet zemāk esošo darblapas funkcijas SUM sintaksi.
Numurs 1, numurs 2 ir funkcijas SUM argumenti.
- Līdzīgi mums jāpiemin arī mūsu argumenti.

Šeit es deklarēju argumentus kā “x kā vesels skaitlis” un “y kā vesels skaitlis”. Tā kā mēs pievienojam skaitlisko vērtību, datu tips jāpiešķir tikai kā skaitliskais datu tips.
Pēc argumentu deklarēšanas esmu piešķīris arī vesela skaitļa atgriešanās veidu, jo funkcijas “OurSum” dotais rezultāts ir arī skaitliska vērtība.
- Tagad funkcijas iekšpusē mums jāpiemin formula, kuru izmantosim. Sākumā mums jāizmanto funkcija.

Mēs pieminējām formulas nosaukumu “ OurSum ” būtu jāpievieno x un y.
- Labi, saglabājiet kodu un dodieties uz darblapu.

- Es šeit esmu ievadījis dažus numurus. Atveriet vienādības zīmi un sāciet rakstīt OurSum. Šeit varat redzēt formulas nosaukumu.

- Tāpat kā tas, kā mēs atlasām šūnas, tāpat atlasa divas šūnas atsevišķi.

- Pēc divu šūnu atlasīšanas nospiediet taustiņu Enter, lai iegūtu rezultātus.

Tātad tas darbojas tieši tāpat kā mūsu parastā SUM funkcija.
- Labi, tagad es mainīšu skaitļus.

- Tagad atkal es pielietošu mūsu izveidoto funkciju.

Ak !!! Mēs saņēmām kļūdu vērtības, izņemot pirmo šūnu.
Jūs droši vien domājat par to, kāpēc mēs pieļāvām kļūdu.
Ja novērojat šūnu A2 un B2, mums ir vērtības 48170 un 21732. Tā kā datu tipu esam piešķīruši kā veselu skaitli, tajā nedrīkst būt vairāk skaitļu kā 32767. Tāpēc Excel kļūda ir #NUM !.
Tagad es pievienošu skaitļus, kas ir mazāki par 32767.

Iepriekš redzamajā attēlā visi skaitļi ir veseli skaitļi, ti, mazāki par 32767.
Pirmajā šūnā mēs saņēmām rezultātus. Bet otrajā šūnā, ti, C2 šūnā, mēs saņēmām kļūdas vērtību kā #VALUE !.
Lai gan abi skaitļi ir mazāki par 32767, mēs tomēr pieļāvām kļūdu.
Tas ir tāpēc, ka gala rezultātu esam deklarējuši arī kā veselu skaitli.

Tātad, pievienojot 16000 un 17229, mēs iegūsim tādu vērtību kā 33229, kas ir vairāk nekā vesela skaitļa datu veida ierobežojums 32767. Tātad gala rezultāts ir kļūdas vērtība.
2. piemērs - izveidojiet funkciju loģisko vērtību pārbaudei
Mēs izveidosim vēl vienu funkciju, lai pārbaudītu loģiskās vērtības. Mums ir nepieciešama funkcija, kas atgriež “Laba”, ja skaitlis ir> = 60, un rezultāts ir vajadzīgs kā “Slikts”, ja skaitlis ir <= 50.
1. darbība: sāciet funkciju Procedūra un piešķiriet procedūrai nosaukumu.

2. solis: norādiet argumentu kā TestScore kā vesels skaitlis.

3. solis: mūsu gala rezultātam jābūt vai nu “labam”, vai “sliktam”, tāpēc rezultātam jābūt virknē.
4. solis: Pirmkārt, mums jāpārbauda, vai rezultāts ir> = 60 vai nav. Lai pārbaudītu, izmantojiet nosacījumu IF.

5. solis: ja testa rezultāts ir> = 60, mums ir nepieciešama funkcija, lai rezultātu atgrieztu kā “labu”. Tātad TestResult = “Labi”.

6. solis: ja testa rezultāts ir mazāks par 60, funkcijas rezultātam jābūt “sliktam”.

Labi, mēs esam galā.
- Saglabājiet kodu un dodieties uz darblapu.

Šeit kā testa rezultāts esmu ievadījis dažus skaitļus.
- Lai iegūtu rezultātus, izmantojiet mūsu izveidoto funkciju.

- Atlasiet šūnu un nospiediet taustiņu Enter.

Par to ir domāts UDF.