Excel VBA Function Tutorial: Paluu, Soita, Esimerkkejä
⚡ Älykäs yhteenveto
Excelin VBA-funktio on koodilohko, joka suorittaa tehtävän ja palauttaa tuloksen sille, mitä sitä kutsutaan. Tämä sivu käsittelee deklarointisyntaksia, arvon palauttamista, laskennallisen laskutoimituksen esimerkkiä ja funktion käyttöä laskentataulukon solussa.

Mikä on funktio?
Funktio on koodinpätkä, joka suorittaa tietyn tehtävän ja palauttaa tuloksen. Toimintoja käytetään enimmäkseen toistuvien tehtävien suorittamiseen, kuten tietojen muotoiluun tulostusta varten, laskelmien suorittamiseen jne.
Oletetaan, että olet kehittynytping Ohjelma, joka laskee lainan korot. Voit luoda funktion, joka hyväksyy lainasumman ja takaisinmaksuajan. Funktio voi sitten käyttää lainasummaa ja takaisinmaksuaikaa koron laskemiseen ja arvon palauttamiseen.
Miksi käyttää toimintoja
Funktioiden käytön edut ovat samat kuin aliohjelmilla luetellut: ne jakavat pitkän ohjelman hallittaviin osiin, niitä voidaan käyttää uudelleen mistä tahansa projektin kohdassa ja kuvaava nimi dokumentoi, mitä koodi tekee. Excel VBA -aliohjelman opetusohjelma kattaa nuo edut kokonaisuudessaan.
Funktioiden nimeämissäännöt
Nimeämissäännöt ovat myös samat kuin aliohjelmilla. Funktion nimi ei voi sisältää välilyöntiä, sen on alettava kirjaimella tai alaviivalla, eikä se saa olla varattu. VBA avainsana, kuten Funktio, Yksityinen tai Loppu.
VBA-syntaksi funktion ilmoittamiseen
Private Function myFunction (ByVal arg1 As Integer, ByVal arg2 As Integer) myFunction = arg1 + arg2 End Function
TÄÄLLÄ syntaksissa,
| Code | Toiminta |
|---|---|
|
|
|
|
|
|
|
|
Arvon palauttaminen ja funktion tietotyypin asettaminen
Funktiolla on yksi tehtävä, jota aliohjelmalla ei ole: se palauttaa arvon. Kaksi yksityiskohtaa ohjaa tätä arvoa, ja molemmat on helppo unohtaa.
Ensimmäinen on sijoitus. VBA:ssa ei ole Return-lausetta. Sen sijaan tulos sijoitetaan funktion omaan nimeen, minkä vuoksi rivillä lukee myFunction = arg1 + arg2Jos kyseinen sijoitus ei koskaan suoriteta, funktio palauttaa hiljaa tyhjän arvon virheen sijaan, joten jokaisen koodin haaran on asetettava se.
Toinen on paluutyyppi. Yllä oleva deklaraatio päättyy sulkevaan hakasulkeeseen, joten funktio palauttaa Variant-tyypin. As-lauseen lisääminen hakasulkeiden jälkeen korjaa tyypin, mikä on nopeampi, käyttää vähemmän muistia ja antaa kääntäjälle mahdollisuuden havaita epäsuhta.
| Ilmoitus | Palautukset | Milloin sitä käytetään |
|---|---|---|
| Funktio f(x niin kauan kuin) | variantti | Vain silloin, kun tulostyyppi todella vaihtelee |
| Funktio f(x Niin kauan) Niin kauan | Pitkät | Kokonaisluvut, kuten lukumäärät ja rivinumerot |
| Funktio f(x Niin kauan kuin) Double | Double | Mikä tahansa desimaaleja tuottava laskutoimitus |
| Funktio f(x) merkkijonona | jono | Muotoiltu teksti palautettiin näytettäväksi |
| Funktio f(x As Long) As Boole-funktio | boolean | Vahvistustarkistus vastaa oikein tai väärin |
💡 Vinkki: Käytä Exit-funktiota poistuaksesi aikaisemmin, kun paluuarvo on asetettu, samalla tavalla kuin Exit Sub poistuu aliohjelmasta.
Toiminto esitellään esimerkillä:
Toiminnot ovat hyvin samanlaisia kuin aliohjelma. Suurin ero aliohjelman ja funktion välillä on, että funktio palauttaa arvon, kun sitä kutsutaan. Vaikka aliohjelma ei palauta arvoa, kun sitä kutsutaan. Oletetaan, että haluat lisätä kaksi numeroa. Voit luoda funktion, joka hyväksyy kaksi numeroa ja palauttaa lukujen summan.
- Luo käyttöliittymä
- Lisää funktio
- Kirjoita komentopainikkeen koodi
- Testaa koodi
Vaihe 1) Käyttöliittymä
Lisää komentopainike laskentataulukkoon alla olevan kuvan mukaisesti
Aseta CommandButton1:n seuraavat ominaisuudet seuraaviin arvoihin.
| S / N | Valvonta: | Omaisuus | Arvo |
|---|---|---|---|
| 1 | Komentopainike1 | Nimi | btnAddNumbers |
| 2 | Kuvateksti | Lisää Numbers Toiminto |
Käyttöliittymäsi pitäisi nyt näyttää seuraavalta
Vaihe 2) Toimintokoodi.
- Avaa koodiikkuna painamalla Alt + F11
- Lisää seuraava koodi
Private Function addNumbers(ByVal firstNumber As Integer, ByVal secondNumber As Integer) addNumbers = firstNumber + secondNumber End Function
TÄÄLLÄ koodissa,
| Code | Toiminta |
|---|---|
|
|
|
|
|
|
Vaihe 3) Kirjoita Code joka kutsuu funktiota
- Napsauta hiiren kakkospainikkeella Lisää-painikettaNumbers komentopainike
- Valitse näkymä Code
- Lisää seuraava koodi
Private Sub btnAddNumbers_Click() MsgBox addNumbers(2, 3) End Sub
TÄÄLLÄ koodissa,
| Code | Toiminta |
|---|---|
| "ViestiBox lisätäNumbers(2,3)” |
|
Vaihe 4) Suorita ohjelma, saat seuraavat tulokset
Lataa Excel, joka sisältää yllä olevan koodin
Lataa yllä oleva Excel-tiedosto Code
Yllä oleva painike kutsuu funktiota VBA-koodista. Funktiota voidaan kutsua myös itse laskentataulukosta ilman painiketta.
VBA-funktion käyttäminen laskentataulukon solussa
VBA:lla kirjoitettu funktio voidaan kirjoittaa soluun täsmälleen samalla tavalla kuin SUMMA tai PHAKU. Excel kutsuu tätä käyttäjän määrittämäksi funktioksi eli UDF:ksi, ja siksi monet ihmiset oppivat funktiot ennen aliohjelmia. Kolmen ehdon on täytyttävä.
- Aseta se vakiomoduuliin: Lisää, Moduuli editorissa. Laskentataulukon taakse tai ThisWorkbook-kansioon tallennettu funktio ei näy kaavarivillä.
- Julista se julkiseksi: Yllä olevassa esimerkissä käytetään Private-asetusta, joka piilottaa sen Excelistä. Julkinen on oletusarvo, joten pelkkä avainsanan poistaminen riittää.
- Palauta arvo, älä muuta mitään: UDF ei voi muotoilla soluja, poistaa rivejä tai kirjoittaa toiseen soluun. Excel estää nämä toiminnot ja solussa näkyy #ARVO!.
Alla oleva funktio muuntaa lämpötilan ja sitä voidaan käyttää missä tahansa taulukon kohdassa.
Public Function CelsiusToF(ByVal Celsius As Double) As Double CelsiusToF = (Celsius * 9 / 5) + 32 End Function
Tallenna työkirja makroita tukevana .xlsm-tiedostona ja kirjoita sitten =CelsiusF(A1) mihin tahansa soluun. Tulos päivittyy aina, kun solu A1 muuttuu, ja nimi näkyy kaavan automaattisen täydennyksen luettelossa Käyttäjän määrittämät -luokassa. Koska työkirja sisältää nyt makroja, sen avaavan on otettava sisältö käyttöön ennen kuin kaava palauttaa arvon #NIMI?-virheen sijaan.
Yleisiä VBA-funktiovirheitä ja niiden korjaaminen
Neljä ongelmaa selittää useimmat funktiot, jotka kääntyvät, mutta palauttavat väärän vastauksen.
- Funktio palauttaa arvon Tyhjä tai 0: Tulosta ei koskaan liitetty funktion nimeen, tai yksi If-lausekkeen haara ohittaa liittämisen. Aseta paluuarvo jokaiselle polulle.
- #NIMI? laskentataulukon solussa: Funktio on yksityinen, sijaitsee taulukkomoduulissa vakiomoduulin sijaan tai työkirja tallennettiin ilman, että makrot ovat käytössä.
- Ylivuoto kokonaislukuargumenteilla: Esimerkissä käytetään As Integer -muotoa, joka pysähtyy lukuun 32 767. Muuta molemmat parametrit ja paluutyyppi Long-arvoksi kaikille reaalilukutiedoille.
- Muuttunut argumentti yllättää soittajan: ByVal-muuttujasta luopuminen pakottaa VBA:n välittämään muuttujan itse, joten funktio voi muuttaa kutsujan arvoa. Kirjoita ByVal, ellet halua tätä vaikutusta.



