Ovaj će vodič objasniti kako stvoriti korisnički definirane funkcije u VBA -i.
VBA se sastoji od potprocedura i postupaka funkcija. Postupci funkcija vraćaju vrijednost i mogu se pozvati pomoću podprocedura ili se mogu koristiti u Excelovom listu, gdje se vrijednost koju funkcija proizvodi vraća u Excel tablicu. Excel, naravno, ima niz ugrađenih funkcija - poput funkcije zbroja ili funkcije if. Postupci funkcija koje pišete u VBA koriste se na sličan način kao i ugrađena funkcija i poznati su kao Korisnički definirane funkcije (UDF).
Zašto stvoriti UDF?
Nedostaje potrebna funkcija
Jedan od glavnih razloga zašto želite stvoriti UDF u Excelu je to što ne postoji ugrađena funkcija koja će umjesto vas obaviti zadatak. Pisanje vlastite funkcije u VBA obično je najučinkovitiji način rješavanja problema. Dolje prikazana funkcija pretvorit će vrijednost iz kilograma u funte gdje se koristi varijabilni parametar (dblKilo) za dobivanje vrijednosti kilograma za izračun.
Zamijenite potprogram (makro)
Mogli biste napisati podproceduru (makro) kako biste riješili zadatak umjesto vas - ali podprocedure ne vraćaju vrijednost i nisu dinamične - drugim riječima, ako se vrijednosti na vašem radnom listu promijene, morat ćete ponovno pokrenuti makronaredbu kako bi izračuni u makronaredbi ažurirali vaše podatke. Podpostupak u nastavku također bi pretvorio naše kilograme u funte, ali svaki put kad bi se podaci promijenili u A1, morali biste ponovno pokrenuti makro kako biste ažurirali rezultat.
Zamijenite formulu
Možda imate zaista kompliciranu formulu u Excelu koju morate koristiti više puta - stavljanje formule u VBA kôd olakšava čitanje i razumijevanje - kao i možda uklanjanje prostora za greške korisnika prilikom upisivanja formule.
Stvaranje UDF -ova
Da biste stvorili UDF, najprije dodajte modul u Excel radnu knjigu ili, ako imate radnu knjigu Personal Macro, možete upotrijebiti postojeći modul ili dodati novi. Da biste to učinili, morate biti u uređivaču Visual Basic (VBE). Za pristup VBE -u pritisnite ALT + F11 ili kliknite na Visual Basic Option na kartici Developer na vrpci.
SAVJET: Ako na vrpci nemate omogućenu karticu Developer, idite na Datoteka, opcije i kliknite na Prilagodite vrpcu. Provjerite je li potvrđen okvir Developer i kliknite U redu.
Za umetanje novog modula odaberite VBA projekt u koji želite umetnuti modul (ili VBA projekt za trenutnu knjigu u kojoj radite ili Osobna radna knjiga makronaredbi), kliknite na Umetnuti Izbornik i kliknite Modul
Nakon što ste stvorili svoj modul, možete početi stvarati svoj UDF.
Svi UDF -ovi počinju s funkcijom, a zatim imenom UDF -a. Funkcije mogu biti privatne ili javne, ali obično biste htjeli da UDF bude javan kako bi se pojavio u dijaloškom okviru Umetni funkciju u Excelu (pogledajte korištenje funkcije iz Excel lista dalje u ovom članku). Ako ključnu riječ Privatno ne stavite ispred funkcije, tada je funkcija automatski javna.
123 | Funkcija TestFunction1 (intA kao cijeli broj) kao cijeli brojTestFunction1 = intA * 7Završna funkcija |
Gornja funkcija ima jedan argument (intA). Možete stvoriti funkciju s više argumenata
123 | Funkcija TestFunction2 (intA kao cijeli broj, intB kao cijeli broj, intC kao cijeli broj) kao cijeli brojTestFunction2 = (intA * intB) + intCZavršna funkcija |
Također možete stvoriti funkciju s izbornim argumentima. Ako je argument izostavljen, možete postaviti zadanu vrijednost za argument u funkciji.
123 | Funkcija TestFunction3 (intA kao cijeli broj, intB kao cijeli broj, neobavezno intC kao cijeli broj = 10) kao cijeli brojTestFunction3 = (intA * intB) + intCZavršna funkcija |
Korištenje funkcije iz Excel lista
Funkcije koje ste stvorili po defaultu će se pojaviti na vašem popisu funkcija u odjeljku Korisnički definirano na popisu funkcija.
Klikni na fx za prikaz dijaloškog okvira Umetni funkciju.
Odaberi Korisnik definiran s Popisa kategorija
Odaberite željenu funkciju od dostupnih Korisnički definirane funkcije.
Alternativno, kada počnete pisati svoju funkciju u Excelu, funkcija bi se trebala pojaviti na padajućem popisu funkcija.
Spremanje funkcija s Excel datotekom
Budući da su funkcije napisane u VBA kodu, razumljivo je da kôd mora biti dostupan radnoj knjizi kako bi bio dostupan za upotrebu u Excelovom listu. Svoje funkcije možete spremiti u radnu knjigu u kojoj ih koristite ili ih možete spremiti u svoju radnu knjigu osobnih makronaredbi. Vaša je radna knjiga Osobni makro skrivena datoteka koja je dostupna kad god je Excel otvoren i stoga je dostupna za korištenje bilo kojoj radnoj knjizi u Excelu. Obično se stvara kada snimite makronaredbu i odaberete opciju za spremanje makronaredbe u radnu knjigu Personal Macro.
Ako želite zadržati svoje funkcije spremljene u radnoj knjizi na kojoj radite, morat ćete se pobrinuti da prilikom spremanja radne knjige bude spremljena kao "Radna knjiga s omogućenim makronaredbama‘Ili an xlsm datoteka.