Excel VBA -käyttäjän määrittämä toiminto (UDF)
Microsoft palvelee meitä monilla sisäänrakennetuilla toiminnoilla työn nopeuttamiseksi excelissä. VBA-koodausta käyttämällä voimme kuitenkin luoda omia toimintoja, ja näitä toimintoja kutsutaan teknisesti "käyttäjän määrittelemiksi toiminnoiksi" (UDF). Niitä kutsutaan myös "mukautetuiksi toiminnoiksi" Excel VBA: ssa.
Kaikkia kaavoja, joihin pääsee laskentataulukosta koodinpätkällä, kutsutaan nimellä UDF. Yksinkertaisesti sanottuna mitä tahansa kaavaa, jota ei ole sisäänrakennettu, mutta joka on käytettävissä Excelissä, kutsutaan käyttäjän määrittelemiksi toiminnoiksi.

Kuinka luoda käyttäjän määrittämiä toimintoja?
Vaikka UDF on osa moduuliamme, ne eivät kuulu tavalliseen aliohjelmaamme VBA: ssa. Tätä kutsutaan funktiomenettelyksi VBA: ssa. Samoin kuin aloitamme makrokoodauksen sanalla SUB, meidän on aloitettava tämä sanalla "Toiminto". Alimenettelyllä on alku ja loppu, samalla tavalla kuin toimintomenettelyllä on alku ja loppu.
Esimerkki # 1 - Luo yksinkertainen UDF-summa-funktio
Luomme oman SUM-funktion Excelissä lisäämällä kaksi numeroa.
- Aloita koodaus aloittamalla sana ”Function” jostakin moduulista.

- Kuten makron nimittäminen samalla tavalla, meidän on annettava nimi myös toiminnollemme. Tätä nimeä käytetään kaavan nimellä.

Toisin kuin alirutiinissa, emme voi yksinkertaisesti painaa Enter luoda menettelyä, mutta meidän on mainittava argumentit täällä.
Katso esimerkiksi taulukon funktion SUM alla olevaa syntaksia.
Numero 1, numero 2 ovat funktion SUM argumentteja.
- Samoin meidän on mainittava argumenttimme.

Täällä olen ilmoittanut argumentit "x kokonaislukuna" ja "y kokonaislukuna". Koska lisäämme numeerista arvoa, meidän on määritettävä tietotyyppi vain numeeriseksi tietotyypiksi.
Argumenttien ilmoittamisen jälkeen olen määrittänyt myös kokonaisluvun palautustyypin, koska funktion "OurSum" antama tulos on myös numeerinen arvo.
- Nyt toiminnon sisällä on mainittava kaava, jota aiomme käyttää. Tässä meidän on käytettävä toimintoa aluksi.

Mainitsimme kaavan nimen " OurSum " pitäisi lisätä x ja y.
- Ok, tallenna koodi ja siirry laskentataulukkoon.

- Olen kirjoittanut muutaman numeron tähän. Avaa yhtälömerkki ja ala kirjoittaa OurSum. Kaavan nimi näkyy täällä.

- Kuten solujen valitsemisessa, valitse samalla tavoin kaksi solua erikseen.

- Kun olet valinnut kaksi solua, paina Enter-näppäintä saadaksesi tuloksia.

Joten se toimii täsmälleen samalla tavalla kuin tavallinen SUM-toiminto.
- Ok, nyt vaihdan numerot.

- Nyt taas kerran käytän luomaa toimintoa.

Vai niin!!! Saimme virhearvot ensimmäistä solua lukuun ottamatta.
Mietit varmasti, miksi saimme virheen.
Jos havaitset solut A2 ja B2, meillä on arvot 48170 ja 21732. Koska tietotyypiksi on määritetty kokonaisluku, siinä ei voi olla enempää kuin 32767. Siksi saimme excel-virheen #NUM !.
Lisään nyt numerot, jotka ovat alle 32767.

Yllä olevassa kuvassa kaikki luvut ovat kokonaislukuja, ts. Alle 32767.
Ensimmäisessä solussa saimme tulokset. Mutta toisessa solussa, ts. C2-solussa, saimme virhearvoksi #ARVO !.
Vaikka molemmat numerot ovat alle 32767, saimme virheen.
Tämä johtuu siitä, että olemme ilmoittaneet lopputuloksen myös kokonaislukuna.

Joten kun lisätään 16000 ja 17229, saadaan arvo, kuten 33229, joka on enemmän kuin kokonaislukutietotyyppiraja 32767. Lopputuloksena on siis virhearvo.
Esimerkki # 2 - Luo toiminto loogisten arvojen testaamiseksi
Luomme vielä yhden toiminnon loogisten arvojen testaamiseksi. Tarvitsemme funktion, joka palauttaa arvon "Hyvä", jos luku on> = 60, ja tulos on "Huono", jos luku on <= 50.
Vaihe 1: Käynnistä toiminto ja anna menettelylle nimi.

Vaihe 2: Anna argumentti TestScore kokonaislukuna.

Vaihe 3: Lopputuloksemme tulisi olla joko "hyvä" tai "huono", joten tuloksen tulisi olla merkkijono.
Vaihe 4: Ensinnäkin meidän on testattava, onko pisteet> = 60 vai ei. Käytä IF-ehtoa testata.

Vaihe 5: Jos testitulos on> = 60, tarvitsemme funktion palauttamaan tuloksen hyväksi. Joten TestResult = "Hyvä".

Vaihe 6: Jos testitulos on alle 60, toiminnon tuloksen tulisi olla "huono".

Ok, olemme valmiit.
- Tallenna koodi ja siirry laskentataulukkoon.

Olen kirjoittanut muutaman numeron tähän testituloksena.
- Käytä luomaa toimintoa tulostaaksesi.

- Valitse solu ja paina Enter.

Tästä UDF on kyse.