VBA programmeerimisel tagastab funktsioon väärtuse. Funktsiooniprotseduure saate käivitada ja funktsiooni välja kutsuda rakenduses Excel 2016. Erinevalt alamprotseduuridest saab funktsioone täita ainult kahel viisil.
Proovige seda lihtsat funktsiooni. Sisestage see VBA moodulisse:
Funktsioon CubeRoot(arv)
CubeRoot = arv ^ (1/3)
Lõpetamisfunktsioon
See funktsioon on üsna kohmakas; see lihtsalt arvutab talle argumendina edastatud arvu kuupjuure. See annab aga lähtepunkti funktsioonide mõistmiseks. See illustreerib ka olulist funktsioonide kontseptsiooni: kuidas väärtust tagastada. (Kas mäletate, et funktsioon tagastab väärtuse, eks?)
Pange tähele, et selle funktsiooni protseduuri moodustav üks koodirida teostab arvutuse. Matemaatika tulemus (arv astmega 1/3) omistatakse muutujale CubeRoot. Mitte juhuslikult on CubeRoot ka funktsiooni nimi. Funktsioonile tagastatava väärtuse määramiseks määrate selle väärtuse funktsiooni nimele.
Funktsiooni kutsumine alamprotseduurist
Kuna te ei saa funktsiooni otse käivitada, peate selle kutsuma mõnest muust protseduurist. Sisestage järgmine lihtne protseduur samasse VBA-moodulisse, mis sisaldab funktsiooni CubeRoot:
Sub CallerSub()
Vastus = CubeRoot (125)
MsgBox Ans
Lõpeta alam
Kui käivitate protseduuri CallerSub, kuvab Excel teatekasti, mis sisaldab muutuja Ans väärtust, mis on 5.
Toimub järgmine: Funktsioon CubeRoot käivitatakse ja see saab argumendi 125. Arvutamine toimub funktsiooni koodi abil (kasutades argumendina edastatud väärtust) ja funktsiooni tagastatud väärtus määratakse muutujale Ans. Funktsioon MsgBox kuvab seejärel muutuja Ans väärtuse.
Proovige muuta CubeRoot funktsioonile edastatud argumenti ja käivitage CallerSub makro uuesti. See töötab täpselt nii, nagu peab – eeldades, et annate funktsioonile kehtiva argumendi (positiivne arv).
Muide, CallerSub protseduuri võiks veidi lihtsustada. Muutujat Ans pole tegelikult vaja, välja arvatud juhul, kui teie kood seda muutujat hiljem kasutab. Sama tulemuse saamiseks võite kasutada seda ühte lauset:
MsgBox CubeRoot (125)
Funktsiooni kutsumine töölehe valemist
Nüüd on aeg kutsuda see VBA funktsiooni protseduur töölehe valemist. Aktiveerige tööleht samas töövihikus, mis sisaldab funktsiooni CubeRoot definitsiooni. Seejärel sisestage mis tahes lahtrisse järgmine valem:
=CubeRoot(1728)
Lahtris kuvatakse 12, mis on tõepoolest 1728 kuupjuur.
Nagu arvata võis, saate funktsiooni CubeRoot argumendina kasutada lahtriviidet. Näiteks kui lahter A1 sisaldab väärtust, võite sisestada =CubeRoot(A1) . Sel juhul tagastab funktsioon arvu, mis on saadud väärtuse A1 kuupjuure arvutamisel.
Saate seda funktsiooni töölehel kasutada suvalise arvu kordi. Nagu Exceli sisseehitatud funktsioonid, kuvatakse teie kohandatud funktsioonid dialoogiboksis Funktsiooni lisamine. Klõpsake tööriistariba nuppu Lisa funktsioon ja valige kategooria Kasutaja määratud. Funktsiooni lisamise dialoogiboksis on loetletud teie enda funktsioon.

Funktsioon CubeRoot kuvatakse dialoogiboksi Funktsiooni lisamise kategoorias Kasutaja määratud kategoorias.
Kui soovite, et dialoogiboks Funktsiooni lisamine kuvaks funktsiooni kirjelduse, toimige järgmiselt.
Valige Arendaja → Kood → Makrod.
Excel kuvab dialoogiboksi Makro, kuid CubeRootit loendis ei kuvata. (CubeRoot on funktsiooniprotseduur ja see loend näitab ainult alamprotseduure.) Ärge muretsege.
Tippige väljale Makro nimi sõna CubeRoot.
Klõpsake nuppu Valikud.
Sisestage väljale Kirjeldus funktsiooni kirjeldus.
Dialoogiboksi Makrosuvandid sulgemiseks klõpsake nuppu OK.
Sulgege dialoogiboks Makro, klõpsates nuppu Tühista.
See kirjeldav tekst kuvatakse nüüd dialoogiboksis Funktsiooni lisamine.
Vaadake töölehe valemites kasutatavat funktsiooni CubeRoot.

Funktsiooni CubeRoot kasutamine valemites.