Excelin VBA-alien ja funktioiden nimeäminen

Kuten ihmisillä, lemmikeillä ja hurrikaaneilla, jokaisella Excel VBA -ali- ja funktioproseduurilla on oltava nimi. Vaikka on täysin hyväksyttävää antaa koirallesi nimi Hairball Harris, ei yleensä ole hyvä idea käyttää tällaista vapaavalintaista asennetta nimettäessä Excl VBA -toimenpiteitä. Kun nimeät Excel VBA -menettelyjä, sinun on noudatettava muutamia sääntöjä:

  • Voit käyttää kirjaimia, numeroita ja joitain välimerkkejä, mutta ensimmäisen merkin on oltava kirjain.
  • Et voi käyttää nimessä välilyöntejä tai pisteitä.
  • VBA ei tee eroa isojen ja pienten kirjainten välillä.
  • Proseduurin nimessä ei voi käyttää seuraavia merkkejä: #, $, %, &, @, ^, * tai !. Toisin sanoen toimenpiteesi nimi ei voi näyttää sarjakuvan kirosanailta.
  • Jos kirjoitat funktioproseduurin käytettäväksi kaavassa, vältä soluosoitteelta näyttävän nimen käyttämistä (esimerkiksi A1 tai B52). Itse asiassa Excel sallii tällaiset funktioiden nimet, mutta miksi tehdä asioista hämmentävämpiä kuin ne jo ovat?
  • Toimenpiteiden nimet voivat olla enintään 255 merkkiä pitkiä. (Et tietenkään koskaan tekisi menettelylle näin pitkää nimeä.)

Ihannetapauksessa toimenpiteen nimi kuvaa rutiinin tarkoitusta. Hyvä käytäntö on luoda nimi yhdistämällä verbi ja substantiivi – esimerkiksi ProcessData, PrintReport, Sort_Array tai CheckFilename.

Jotkut ohjelmoijat käyttävät mieluummin lausemaisia ​​nimiä, jotka tarjoavat täydellisen kuvauksen menettelystä. Joitakin esimerkkejä ovat WriteReportToTextFile ja Get_Print_Options_and_Print_Report. Tällaisten pitkien nimien käytöllä on hyvät ja huonot puolensa. Toisaalta tällaiset nimet ovat kuvailevia ja yleensä yksiselitteisiä. Toisaalta niiden kirjoittaminen kestää kauemmin. Jokainen kehittää nimeämistyylinsä, mutta jos makrosi ei ole vain nopea ja likainen väliaikainen makro, on hyvä idea olla kuvaava ja välttää merkityksettömiä nimiä, kuten DoIt, Update, Fix ja yhä suositumpi Macro1.

Excel VBA Sub -toimintojen suorittaminen

Vaikka et ehkä tiedä paljoakaan alitoimintojen kehittämisestä tässä vaiheessa, on tärkeää tietää, kuinka nämä toimenpiteet suoritetaan. Sub-menettely on arvoton, ellet tiedä kuinka se suoritetaan.

Muuten, suorittamalla Sub menettely merkitsee samaa kuin käynnissä tai soittamalla Sub menettely. Voit käyttää mitä tahansa terminologiaa.

Voit suorittaa VBA Subin monin tavoin; tämä on yksi syy, miksi voit tehdä niin monia hyödyllisiä asioita Sub-menettelyillä. Tässä on kattava luettelo tavoista suorittaa alitoiminto:

  • Valitse Suorita → Suorita ali/käyttäjälomake (VBE:ssä). Excel suorittaa Sub-menettelyn, jossa kohdistin sijaitsee. Tällä valikkokomennolla on kaksi vaihtoehtoa: F5-näppäin ja Run Sub/UserForm -painike VBE:n vakiotyökalurivillä. Nämä menetelmät eivät toimi, jos menettely vaatii yhden tai useamman argumentin.
  • Käytä Excelin Makro-valintaikkunaa. Avaat tämän ruudun valitsemalla Kehittäjä → Koodi → Makrot tai valitsemalla Näytä → Makrot → Makrot. Tai ohita nauha ja paina vain Alt+F8. Kun Makro-valintaikkuna tulee näkyviin, valitse haluamasi alitoiminto ja napsauta Suorita. Tässä valintaikkunassa luetellaan vain ne toimenpiteet, jotka eivät vaadi argumenttia.
  • Paina Ctrl+näppäin (tai Ctrl+Shift+näppäin), joka on määritetty alitoimenpiteelle (olettaen, että olet määrittänyt sellaisen).
  • Napsauta painiketta tai muotoa laskentataulukossa. Painikkeelle tai muodolle on oltava määritetty alitoiminto – mikä on erittäin helppoa.
  • Toisesta kirjoittamastasi alimenettelystä.
  • Napsauta painiketta, jonka olet lisännyt pikakäyttötyökalupalkkiin.
  • Mukautetusta tuotteesta, jonka olet lisännyt nauhaan.
  • Kun tapahtuma tapahtuu. Näitä tapahtumia ovat työkirjan avaaminen, työkirjan sulkeminen, työkirjan tallentaminen, muutoksen tekeminen soluun, arkin aktivointi ja muita asioita.
  • VBE:n välittömästä ikkunasta. Kirjoita vain alitoimenpiteen nimi ja paina Enter.

Joitakin näistä tekniikoista käsitellään alla. Jotta voit jatkaa, sinun on syötettävä alitoiminto VBA-moduuliin:

Aloita uudella työkirjalla.

Aktivoi VBE painamalla Alt+F11.

Valitse työkirja Projekti-ikkunasta.

Lisää uusi moduuli valitsemalla Lisää → Moduuli.

Kirjoita moduuliin seuraavat tiedot:

Sub ShowCubeRoot()
  Num = InputBox("Anna positiivinen luku")
  MsgBox Num ^ (1/3) & " on kuution juuri."
Lopeta ala

Tämä menettely pyytää käyttäjältä numeroa ja näyttää sitten numeron kuutiojuuren viestiruudussa. Nämä kuvat näyttävät, mitä tapahtuu, kun suoritat tämän toimenpiteen.

Excelin VBA-alien ja funktioiden nimeäminen

Käytä sisäänrakennettua VBA InputBox -toimintoa numeron saamiseksi.

Täällä myös mitä tapahtuu MsgBox-toiminnon kautta.

Excelin VBA-alien ja funktioiden nimeäminen

Numeron kuutiojuuren näyttäminen MsgBox-toiminnon kautta.

Muuten, ShowCubeRoot ei ole esimerkki hyvästä makrosta. Se ei tarkista virheitä, joten se epäonnistuu helposti. Yritä napsauttaa Peruuta-painiketta syöttöruudussa tai syöttää negatiivinen luku. Kumpikin toiminto johtaa virheilmoitukseen.

Excel VBA Sub -menettelyn suorittaminen suoraan

Yksi tapa suorittaa tämä toimenpide on tehdä se suoraan VBA-moduulista, jossa määritit sen. Toimi seuraavasti:

Aktivoi VBE ja valitse VBA-moduuli, joka sisältää toimenpiteen.

Siirrä kohdistin minne tahansa toimenpiteen koodissa.

Paina F5 (tai valitse Suorita → Suorita ali/käyttäjälomake).

Vastaa syöttöruutuun ja napsauta OK.

Toimenpide näyttää antamasi numeron kuutiojuuren.

Et voi käyttää Run → Run Sub/UserForm -toimintoa argumentteja käyttävän aliproseduurin suorittamiseen, koska et voi välittää argumentteja proseduurille. Jos proseduuri sisältää yhden tai useamman argumentin, ainoa tapa suorittaa se on kutsua se toisesta prosessista – jonka on toimitettava argumentit.

Toimenpiteen suorittaminen Excelin Makro-valintaikkunasta

Suurimman osan ajasta suoritat alitoimenpiteet Excelistä, et VBE:stä. Seuraavat vaiheet kuvaavat makron suorittamisen Excelin Makro-valintaikkunan avulla:

Jos työskentelet VBE:ssä, aktivoi Excel.
Alt+F11 painaminen on pikareitti.

Valitse Kehittäjä → Koodi → Makrot (tai paina Alt+F8).
Excel näyttää tässä näkyvän valintaikkunan.Excelin VBA-alien ja funktioiden nimeäminen

Makro-valintaikkunassa luetellaan kaikki käytettävissä olevat alitoimenpiteet.

Valitse makro.

Napsauta Suorita (tai kaksoisnapsauta makron nimeä luetteloruudussa).

Makro-valintaikkunassa ei näy argumentteja käyttäviä alitoimintoja. Tämä johtuu siitä, että et voi mitenkään määritellä argumentteja.

Excel VBA -makron suorittaminen pikanäppäimellä

Toinen tapa suorittaa makro on painaa sen pikanäppäintä. Mutta ennen kuin voit käyttää tätä menetelmää, sinun on määritettävä makrolle pikanäppäin.

Sinulla on mahdollisuus määrittää pikanäppäin Tallenna makro -valintaikkunassa, kun aloitat makron tallentamisen . Jos luot menettelyn käyttämättä makrotallenninta, voit määrittää pikanäppäimen (tai muuttaa olemassa olevan pikanäppäimen) seuraavien vaiheiden avulla:

Valitse Kehittäjä → Koodi → Makrot.

Valitse alitoimenpiteen nimi luetteloruudusta.

Tässä esimerkissä menettelyn nimi on ShowCubeRoot.

Napsauta Asetukset-painiketta.
Excel näyttää tässä näkyvän Makroasetukset-valintaikkunan.Excelin VBA-alien ja funktioiden nimeäminen

Makroasetukset-valintaikkunassa voit määrittää makrosi asetukset.

Napsauta Pikanäppäin-vaihtoehtoa ja kirjoita kirjain ruutuun, jonka nimi on Ctrl.

Syöttämäsi kirjain vastaa näppäinyhdistelmää, jota haluat käyttää makron suorittamiseen. Jos esimerkiksi kirjoitat pienen c- kirjaimen , voit suorittaa makron painamalla Ctrl+C. Jos kirjoitat ison kirjaimen, sinun on lisättävä Shift-näppäin näppäinyhdistelmään. Jos esimerkiksi kirjoitat C, voit suorittaa makron painamalla Ctrl+Shift+C.

Napsauta OK sulkeaksesi Makroasetukset-valintaikkunan ja napsauta sitten Peruuta sulkeaksesi Makro-valintaikkunan.
Kun olet määrittänyt pikanäppäimen, voit suorittaa makron painamalla kyseistä näppäinyhdistelmää. Pikanäppäin ei toimi, jos se on määritetty makrolle, joka käyttää argumenttia.

Makroille määrittämäsi pikanäppäimet ohittavat Excelin sisäiset pikanäppäimet. Esimerkiksi Ctrl+C on tavallinen pikanäppäin tietojen kopioimiseen. Jos määrität makrolle Ctrl+C:n, et voi käyttää Ctrl+C:tä kopioimiseen. Tämä ei yleensä ole iso juttu, koska Excel tarjoaa lähes aina muita tapoja suorittaa komentoja.

Excel VBA -proseduurin suorittaminen painikkeesta tai muodosta

Joskus saatat pitää ajatuksesta määrittää makro painikkeeseen (tai mihin tahansa muuhun muotoon) laskentataulukossa. Voit määrittää Excel-makron painikkeelle seuraavasti:

Aktivoi laskentataulukko.

Lisää painike Lomakeohjaimet-ryhmästä.
Voit näyttää Lomakeohjaimet-ryhmän valitsemalla Kehittäjä → Ohjaimet → Lisää.Excelin VBA-alien ja funktioiden nimeäminen

Nauha, joka näyttää säätimet, jotka ovat käytettävissä, kun napsautat Kehittäjä-välilehdellä Lisää.

Napsauta Painike-työkalua Lomakeohjaimet-ryhmässä.

Se on ensimmäinen painike ensimmäisessä ohjausrivissä.

Luo painike vetämällä laskentataulukkoon.
Kun olet lisännyt painikkeen laskentataulukkoon, Excel lukee ajatuksesi ja näyttää alla olevan Määritä makro -valintaikkunan.Excelin VBA-alien ja funktioiden nimeäminen

Kun lisäät painikkeen laskentataulukkoon, Excel näyttää automaattisesti Määritä makro -valintaikkunan.

Valitse makro, jonka haluat määrittää painikkeelle.

Napsauta OK.

Kun olet tehnyt tehtävän, painikkeen napsauttaminen suorittaa makron – aivan kuin taikuutta.

Kun lisäät painikkeen, huomaa, että avattavassa valikossa on kaksi ohjausobjektiryhmää: Lomake-ohjaimet ja ActiveX-ohjaimet. Nämä kaksi ohjausryhmää näyttävät samanlaisilta, mutta ne ovat itse asiassa hyvin erilaisia. Käytännössä Lomakeohjaimet ovat helpompia käyttää.

Voit myös määrittää makron mille tahansa muulle muodolle tai objektille. Oletetaan esimerkiksi, että haluat suorittaa makron, kun käyttäjä napsauttaa suorakulmio-objektia. Toimi seuraavasti:

Lisää suorakulmio laskentataulukkoon.

Lisää suorakulmio valitsemalla Lisää → Kuvat → Muodot.

Napsauta suorakulmiota hiiren kakkospainikkeella.

Valitse sen pikavalikosta Anna makro.

Valitse makro Määritä makro -valintaikkunassa.

Napsauta OK.
Kun olet suorittanut nämä vaiheet, suorakulmion napsauttaminen suorittaa määritetyn makron.

Toimenpiteen suorittaminen toisesta Excel VBA -menettelystä

Voit myös suorittaa Excel VBA -proseduurin toisesta menettelystä. Noudata näitä ohjeita, jos haluat kokeilla tätä:

Aktivoi VBA-moduuli, joka sisältää ShowCubeRoot-rutiinin.

Syötä tämä uusi menettely (joko ShowCubeRoot-koodin ylä- tai alapuolelle - sillä ei ole merkitystä):

Sub NewSub()
  Soita ShowCubeRoot
Lopeta ala

Kun olet valmis, suoritat vain NewSub-makron.

Helpoin tapa tehdä tämä on siirtää kohdistin mihin tahansa NewSub-koodin sisällä ja painaa F5. Huomaa, että tämä NewSub-toiminto suorittaa vain ShowCubeRoot-proseduurin.

Muuten, avainsana Soita on valinnainen. Lause voi koostua vain Sub-proseduurin nimestä. Call-avainsanan käyttäminen tekee kuitenkin täysin selväksi, että menettelyä kutsutaan.

Excel VBA Function -toimintojen suorittaminen

Toiminnot, toisin kuin Sub-menettelyt, voidaan suorittaa vain kahdella tavalla:

  • Kutsumalla funktiota toisesta ali- tai toimintoproseduurista
  • Käyttämällä funktiota laskentataulukon kaavassa

Kokeile tätä yksinkertaista toimintoa. Kirjoita se VBA-moduuliin:

Funktio CubeRoot(numero)
  CubeRoot = numero ^ (1/3)
Lopeta toiminto

This function is pretty wimpy; it merely calculates the cube root of the number passed to it as its argument. It does, however, provide a starting point for understanding functions. It also illustrates an important concept about functions: how to return the value. (You do remember that a function returns a value, right?)

Notice that the single line of code that makes up this Function procedure performs a calculation. The result of the math (number to the power of 1⁄3) is assigned to the variable CubeRoot. Not coincidentally, CubeRoot is also the name of the function. To tell the function what value to return, you assign that value to the name of the function.

Calling the Excel VBA function from a Sub procedure

Because you can’t execute a function directly, you must call it from another procedure. Enter the following simple procedure in the same VBA module that contains the CubeRoot function:

Sub CallerSub()
  Ans = CubeRoot(125)
  MsgBox Ans
End Sub

When you execute the CallerSub procedure, Excel displays a message box that contains the value of the Ans variable, which is 5.

Here’s what’s going on: The CubeRoot function is executed, and it receives an argument of 125. The calculation is performed by the function’s code (using the value passed as an argument), and the function’s returned value is assigned to the Ans variable. The MsgBox function then displays the value of the Ans variable.

Try changing the argument that’s passed to the CubeRoot function and run the CallerSub macro again. It works just like it should — assuming that you give the function a valid argument (a positive number).

By the way, the CallerSub procedure could be simplified a bit. The Ans variable is not really required unless your code will use that variable later. You could use this single statement to obtain the same result:

MsgBox CubeRoot(125)

Calling an Excel VBA function from a worksheet formula

Now it’s time to call this VBA Function procedure from a worksheet formula. Activate a worksheet in the same workbook that holds the CubeRoot function definition. Then enter the following formula in any cell:

=CubeRoot(1728)

The cell displays 12, which is indeed the cube root of 1,728.

As you might expect, you can use a cell reference as the argument for the CubeRoot function. For example, if cell A1 contains a value, you can enter =CubeRoot(A1). In this case, the function returns the number obtained by calculating the cube root of the value in A1.

You can use this function any number of times in the worksheet. Like Excel’s built-in functions, your custom functions appear in the Insert Function dialog box. Click the Insert Function toolbar button, and choose the User Defined category. As shown below, the Insert Function dialog box lists your very own function.

Excelin VBA-alien ja funktioiden nimeäminen

The CubeRoot function appears in the User Defined category of the Insert Function dialog box.

If you want the Insert Function dialog box to display a description of the function, follow these steps:

Choose Developer → Code →  Macros.
Excel displays the Macro dialog box, but CubeRoot doesn’t appear in the list. (CubeRoot is a Function procedure, and this list shows only Sub procedures.) Don’t fret.

Type the word CubeRoot in the Macro Name box.

Click the Options button.

Enter a description of the function in the Description box.

Click OK to close the Macro Options dialog box.

Close the Macro dialog box by clicking the Cancel button.
This descriptive text now appears in the Insert Function dialog box.

This image shows the CubeRoot function being used in worksheet formulas.

Excelin VBA-alien ja funktioiden nimeäminen

Using the CubeRoot function in formulas.

By now, things may be starting to come together for you.


Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa

Kuinka estää Microsoft Wordia avaamasta tiedostoja vain luku -tilassa Windowsissa Microsoft Word avaa tiedostot vain luku -tilassa, jolloin niiden muokkaaminen on mahdotonta? Älä huoli, menetelmät ovat alla

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Microsoft Word -asiakirjojen virheellisen tulostuksen korjaaminen

Virheiden korjaaminen virheellisten Microsoft Word -asiakirjojen tulostuksessa. Virheet tulostettaessa Word-asiakirjoja, joissa on muuttuneet fontit, sotkuiset kappaleet, puuttuva teksti tai kadonnut sisältö ovat melko yleisiä. Älä kuitenkaan

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Pyyhi kynä- ja korostuspiirrokset PowerPoint-dioistasi

Jos olet piirtänyt PowerPoint-dioihin esityksen aikana kynää tai korostuskynää, voit tallentaa piirustukset seuraavaa esitystä varten tai poistaa ne, jotta seuraavan kerran näytät ne. Aloitat puhtailla PowerPoint-dioilla. Pyyhi kynä- ja korostuskynäpiirrokset noudattamalla näitä ohjeita: Pyyhi rivit yksi kerrallaan […]

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjaston sisältö SharePoint 2010:ssä

Tyylikirjasto sisältää CSS-tiedostoja, Extensible Stylesheet Language (XSL) -tiedostoja ja kuvia, joita käyttävät ennalta määritetyt sivupohjat, sivuasettelut ja säätimet SharePoint 2010:ssä. CSS-tiedostojen etsiminen julkaisusivuston tyylikirjastosta: Valitse Sivuston toiminnot→ Näytä Kaikki sivuston sisältö. Sivuston sisältö tulee näkyviin. Style-kirjasto sijaitsee […]

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Muotoile numerot tuhansiksi ja miljooniksi Excel-raporteissa

Älä hukuta yleisöäsi jättimäisillä numeroilla. Microsoft Excelissä voit parantaa koontinäyttöjesi ja raporttiesi luettavuutta muotoilemalla numerot näyttämään tuhansia tai miljoonia.

SharePoint-sivustojen jakaminen ja seuraaminen

SharePoint-sivustojen jakaminen ja seuraaminen

Opi käyttämään SharePointin sosiaalisen verkostoitumisen työkaluja, joiden avulla yksilöt ja ryhmät voivat kommunikoida, tehdä yhteistyötä, jakaa ja pitää yhteyttä.

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Kuinka muuntaa päivämäärät Julian-muotoihin Excelissä

Juliaanisia päivämääriä käytetään usein valmistusympäristöissä aikaleimana ja pikaviitteenä eränumerolle. Tämän tyyppisen päivämääräkoodauksen avulla jälleenmyyjät, kuluttajat ja huoltoedustajat voivat tunnistaa tuotteen valmistusajankohdan ja siten tuotteen iän. Julian-päivämääriä käytetään myös ohjelmoinnissa, armeijassa ja tähtitiedessä. Erilainen […]

Access-verkkosovelluksen luominen

Access-verkkosovelluksen luominen

Voit luoda verkkosovelluksen Access 2016:ssa. Mikä verkkosovellus sitten on? No, verkko tarkoittaa, että se on verkossa, ja sovellus on vain lyhenne sanoista "sovellus". Mukautettu verkkosovellus on online-tietokantasovellus, jota käytetään pilvestä selaimen avulla. Rakennat ja ylläpidät verkkosovellusta työpöytäversiossa […]

Pikakäynnistyspalkki SharePoint 2010:ssä

Pikakäynnistyspalkki SharePoint 2010:ssä

Useimmat SharePoint 2010:n sivut näyttävät navigointilinkkien luettelon pikakäynnistyspalkissa sivun vasemmassa reunassa. Pikakäynnistyspalkki näyttää linkit esitellyn sivuston sisältöön, kuten luetteloihin, kirjastoihin, sivustoihin ja julkaisusivuihin. Pikakäynnistyspalkki sisältää kaksi erittäin tärkeää linkkiä: Koko sivuston sisältö -linkki: […]

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Mitä Ratkaisijan virheilmoitukset Excelissä tarkoittavat?

Yksinkertaisille ongelmille Excelin Ratkaisija löytää yleensä nopeasti optimaaliset Ratkaisijamuuttujien arvot tavoitefunktiolle. Mutta joissakin tapauksissa Ratkaisijalla on vaikeuksia löytää Solver-muuttujan arvoja, jotka optimoivat tavoitefunktion. Näissä tapauksissa Ratkaisija näyttää yleensä viestin tai virheilmoituksen, joka kuvaa tai käsittelee ongelmaa, jonka […]