Ta vadnica bo razložila, kako ustvariti uporabniško določene funkcije v VBA.
VBA sestavljajo podprocedure in funkcijski postopki. Postopki funkcij vrnejo vrednost in jih lahko pokličete s podprocedurami ali pa jih uporabite v Excelovem listu, kjer se vrednost, ki jo ustvari funkcija, vrne v Excelov list. Excel ima seveda vrsto vgrajenih funkcij - na primer funkcijo vsote ali funkcijo if. Postopki funkcij, ki jih zapišete v VBA, se uporabljajo na podoben način kot vgrajena funkcija in so znani kot uporabniško določene funkcije (UDF).
Zakaj ustvariti UDF?
Zahtevana funkcija manjka
Eden glavnih razlogov, da želite ustvariti UDF v Excelu, je, da ni obstoječe vgrajene funkcije, ki bi opravila nalogo namesto vas. Pisanje lastne funkcije v VBA je običajno najučinkovitejši način za rešitev težave. Spodnja funkcija pretvori vrednost iz kilogramov v funtov, kjer se za izračun izračuna vrednosti kilogramov uporabi spremenljiv parameter (dblKilo).
Zamenjaj podprogram (makro)
Lahko bi napisali podproceduro (makro), ki bi rešila nalogo namesto vas - vendar podprocedure ne vrnejo vrednosti in niso dinamične - z drugimi besedami, če se vrednosti na vašem delovnem listu spremenijo, bi morali znova zagnati makro, da lahko izračuni v makru posodobijo vaše podatke. Spodnji podproces bi prav tako pretvoril naše kilograme v funte, vendar bi morali vsakič, ko se podatki spremenijo v A1, znova zagnati makro, da posodobite rezultat.
Zamenjajte formulo
Morda imate v Excelu res zapleteno formulo, ki jo morate uporabljati večkrat - vnos formule v kodo VBA olajša branje in razumevanje - pa tudi morda odstrani prostor za napake uporabnikov pri vnosu formule.
Ustvarjanje UDF -jev
Če želite ustvariti UDF, najprej dodajte modul v delovni zvezek programa Excel ali, če imate delovni zvezek osebnega makra, lahko uporabite obstoječi modul ali dodate novega. Če želite to narediti, morate biti v urejevalniku Visual Basic (VBE). Če želite priti do VBE, pritisnite ALT + F11 ali kliknite možnost Visual Basic na zavihku Razvijalec na traku.
NAMIG: Če na traku nimate omogočenega zavihka Razvijalec, pojdite na Datoteka, možnosti in kliknite na Prilagodite trak. Prepričajte se, da je potrditveno polje Developer in kliknite V redu.
Če želite vstaviti nov modul, izberite projekt VBA, v katerega želite vstaviti modul (bodisi projekt VBA za trenutno knjigo, v kateri delate, bodisi delovni zvezek osebnega makra), kliknite na Vstavi Meni in kliknite Modul
Ko ustvarite svoj modul, lahko začnete ustvarjati svoj UDF.
Vsi UDF -ji se začnejo s funkcijo in nato z imenom UDF. Funkcije so lahko zasebne ali javne, vendar običajno želite, da je UDF javen, da se prikaže v pogovornem oknu Vstavi funkcijo v Excelu (glejte uporabo funkcije na Excelovem listu spodaj v tem članku). Če ključne besede Private ne postavite pred funkcijo, je funkcija samodejno javna.
123 | Funkcija TestFunction1 (intA kot celo število) kot celo številoTestFunction1 = intA * 7Končana funkcija |
Zgornja funkcija ima en sam argument (intA). Ustvarite lahko funkcijo z več argumenti
123 | Funkcija TestFunction2 (intA kot celo število, intB kot celo število, intC kot celo število) kot celo številoTestFunction2 = (intA * intB) + intCKončana funkcija |
Ustvarite lahko tudi funkcijo z izbirnimi argumenti. Če je argument izpuščen, lahko nastavite privzeto vrednost za argument v funkciji.
123 | Funkcija TestFunction3 (intA kot celo število, intB kot celo število, neobvezno intC kot celo število = 10) kot celo številoTestFunction3 = (intA * intB) + intCKončana funkcija |
Uporaba funkcije v Excelovem listu
Ustvarjene funkcije bodo privzeto prikazane na vašem seznamu funkcij v razdelku Uporabniško določene funkcije na seznamu funkcij.
Kliknite na fx za prikaz pogovornega okna Vstavi funkcijo.
Izberite Uporabnik definiran s seznama kategorij
Od razpoložljivih izberite želeno funkcijo Uporabniško določene funkcije.
Druga možnost je, da ko začnete pisati svojo funkcijo v Excelu, se mora funkcija prikazati na spustnem seznamu funkcij.
Shranjevanje funkcij z datoteko Excel
Ker so funkcije zapisane v kodi VBA, je razumljivo, da mora biti koda na voljo delovnemu zvezku, da bo na voljo za uporabo v Excelovem listu. Svoje funkcije lahko shranite v delovni zvezek, v katerem jih uporabljate, ali pa jih shranite v delovni zvezek Osebni makro. Delovni zvezek osebnega makra je skrita datoteka, ki je na voljo, kadar koli je odprt Excel, zato je na voljo za uporabo katerega koli delovnega zvezka v Excelu. Običajno se ustvari, ko posnamete makro in izberete možnost za shranjevanje makra v delovnem zvezku osebnega makra.
Če želite, da vaše funkcije ostanejo shranjene v delovnem zvezku, na katerem delate, se morate prepričati, da se pri shranjevanju delovnega zvezka shrani kot »Delovni zvezek z omogočeno makro funkcijo'Ali an xlsm mapa.