Exceli VBA alamüksuste ja funktsioonide nimetamine

Nagu inimestel, lemmikloomadel ja orkaanidel, peab igal Exceli VBA alam- ja funktsiooniprotseduuril olema nimi. Kuigi on täiesti vastuvõetav anda oma koerale nimi Hairball Harris, ei ole tavaliselt hea mõte kasutada sellist vabakäigulist suhtumist Excl VBA protseduuride nimetamisel. Exceli VBA protseduuride nimetamisel peate järgima mõnda reeglit:

  • Võite kasutada tähti, numbreid ja mõningaid kirjavahemärke, kuid esimene märk peab olema täht.
  • Nimes ei saa kasutada tühikuid ega punkte.
  • VBA ei tee vahet suur- ja väiketähtedel.
  • Protseduuri nimes ei saa kasutada ühtki järgmistest märkidest: #, $, %, &, @, ^, * või !. Teisisõnu, teie protseduuri nimi ei tohi sarnaneda koomiksite needussõnadega.
  • Kui kirjutate valemis kasutamiseks funktsiooni protseduuri, vältige nime kasutamist, mis näeb välja nagu lahtri aadress (nt A1 või B52). Tegelikult Excel lubab selliseid funktsioonide nimesid, kuid miks teha asju segasemaks, kui nad juba on?
  • Protseduuride nimed ei tohi olla pikemad kui 255 tähemärki. (Loomulikult ei paneks te kunagi protseduurile nii pikka nime.)

Ideaalis kirjeldab protseduuri nimi rutiini eesmärki. Hea tava on luua nimi, kombineerides tegusõna ja nimisõna – näiteks ProcessData, PrintReport, Sort_Array või CheckFilename.

Mõned programmeerijad eelistavad kasutada lauselaadseid nimesid, mis kirjeldavad protseduuri täielikku kirjeldust. Mõned näited hõlmavad WriteReportToTextFile ja Get_Print_Options_and_Print_Report. Selliste pikkade nimede kasutamisel on plusse ja miinuseid. Ühest küljest on sellised nimed kirjeldavad ja enamasti üheselt mõistetavad. Teisest küljest võtab nende tippimine kauem aega. Igaüks arendab nimetamisstiili, kuid kui teie makro ei ole lihtsalt kiire ja määrdunud ajutine makro, on hea mõte olla kirjeldav ja vältida mõttetuid nimesid, nagu DoIt, Update, Fix ja üha populaarsem Macro1.

Exceli VBA alamprotseduuride täitmine

Kuigi te ei pruugi praegu alamprotseduuride väljatöötamisest palju teada, on oluline teada, kuidas neid protseduure teostada. Alamprotseduur on väärtusetu, kui te ei tea, kuidas seda teha.

Muide, alamprotseduuri täitmine tähendab sama, mis alamprotseduuri käivitamine või kutsumine . Võite kasutada mis tahes terminoloogiat, mis teile meeldib.

VBA Sub-i saate käivitada mitmel viisil; see on üks põhjus, miks saate Sub-protseduuridega nii palju kasulikke asju teha. Siin on täielik loetelu alamprotseduuri teostamise viisidest:

  • Valige Run → Run Sub/User Form (VBE-s). Excel käivitab alamprotseduuri, milles kursor asub. Sellel menüükäsul on kaks alternatiivi: klahv F5 ja nupp Run Sub/UserForm VBE standardsel tööriistaribal. Need meetodid ei tööta, kui protseduur nõuab ühte või mitut argumenti.
  • Kasutage Exceli makro dialoogiboksi. Selle kasti saate avada, valides Arendaja → Kood → Makrod või valides Vaade → Makrod → Makrod. Või minge lindist mööda ja vajutage lihtsalt Alt+F8. Kui kuvatakse dialoogiboks Makro, valige soovitud alamprotseduur ja klõpsake nuppu Käivita. Selles dialoogiboksis on loetletud ainult need protseduurid, mis argumenti ei vaja.
  • Vajutage alamprotseduurile määratud klahvikombinatsiooni Ctrl+klahv (või Ctrl+Shift+klahv) (eeldusel, et olete selle määranud).
  • Klõpsake töölehel nuppu või kujundit. Nupule või kujundile peab olema määratud alamprotseduur – seda on väga lihtne teha.
  • Teisest teie kirjutatud alamprotseduurist.
  • Klõpsake nuppu, mille olete kiirjuurdepääsu tööriistaribale lisanud.
  • Kohandatud üksusest, mille olete lindile lisanud.
  • Kui sündmus toimub. Nende sündmuste hulka kuuluvad töövihiku avamine, töövihiku sulgemine, töövihiku salvestamine, lahtris muudatuste tegemine, lehe aktiveerimine ja muud asjad.
  • VBE vahetu aknast. Tippige lihtsalt alamprotseduuri nimi ja vajutage sisestusklahvi.

Mõnda neist tehnikatest käsitletakse allpool. Järgimiseks peate sisestama VBA-moodulis alamprotseduuri:

Alustage uue töövihikuga.

VBE aktiveerimiseks vajutage Alt+F11.

Valige projekti aknas töövihik.

Uue mooduli lisamiseks vali Lisa → Moodul.

Sisestage moodulisse järgmine:

Sub ShowCubeRoot()
  Num = InputBox ("Sisesta positiivne arv")
  MsgBox Num ^ (1/3) & " on kuupjuur."
Lõpeta alam

See protseduur küsib kasutajalt numbrit ja kuvab seejärel sõnumikastis selle numbri kuupjuure. Need pildid näitavad, mis selle protseduuri sooritamisel juhtub.

Exceli VBA alamüksuste ja funktsioonide nimetamine

Sisseehitatud VBA InputBox funktsiooni kasutamine numbri saamiseks.

Siin saate ka seda, mis toimub MsgBoxi funktsiooni kaudu.

Exceli VBA alamüksuste ja funktsioonide nimetamine

Numbri kuupjuure kuvamine funktsiooni MsgBox kaudu.

Muide, ShowCubeRoot pole hea makro näide . See ei kontrolli vigu, nii et see ebaõnnestub kergesti. Proovige klõpsata sisestuskastis nuppu Tühista või sisestada negatiivne arv. Mõlema toimingu tulemuseks on veateade.

Exceli VBA alamprotseduuri otse täitmine

Üks viis selle protseduuri teostamiseks on teha seda otse VBA-moodulist, milles selle määratlesite. Järgige neid samme.

Aktiveerige VBE ja valige protseduuri sisaldav VBA-moodul.

Liigutage kursor ükskõik kuhu protseduuri koodis.

Vajutage F5 (või valige Run → Run Sub/UserForm).

Vastake sisestuskastile ja klõpsake nuppu OK.

Protseduur kuvab sisestatud numbri kuupjuure.

Argumente kasutava alamprotseduuri käivitamiseks ei saa kasutada käsku Käivita → Käivita alam/kasutajavorm, kuna sul pole võimalust argumente protseduurile edastada. Kui protseduur sisaldab ühte või mitut argumenti, on ainus viis selle käivitamiseks kutsuda see mõnest teisest protseduurist, mis peab esitama argumendi(d).

Protseduuri täitmine Exceli makro dialoogiboksis

Enamasti teostate alamprotseduure Excelist, mitte VBE-st. Järgmised sammud kirjeldavad makro käivitamist Exceli makro dialoogiboksi abil.

Kui töötate VBE-s, aktiveerige Excel.
Alt+F11 vajutamine on kiirmarsruut.

Valige Arendaja → Kood → Makrod (või vajutage Alt+F8).
Excel kuvab siin näidatud dialoogiboksi.Exceli VBA alamüksuste ja funktsioonide nimetamine

Dialoogiboksis Makro on loetletud kõik saadaolevad alamprotseduurid.

Valige makro.

Klõpsake käsul Käivita (või topeltklõpsake loendikastis makro nimel).

Dialoogiboksis Makro ei kuvata argumente kasutavaid alamprotseduure. Põhjus on selles, et argumente ei saa kuidagi täpsustada.

Exceli VBA makro käivitamine kiirklahvi abil

Teine viis makro käivitamiseks on vajutada selle kiirklahvi. Kuid enne selle meetodi kasutamist peate määrama makrole kiirklahvi.

Kui alustate makro salvestamist, saate dialoogiboksis Makro salvestamine määrata kiirklahvi . Kui loote protseduuri ilma makrosalvestit kasutamata, saate määrata kiirklahvi (või muuta olemasolevat kiirklahvi), järgides järgmisi samme.

Valige Arendaja → Kood → Makrod.

Valige loendikastist alamprotseduuri nimi.

Selles näites kannab protseduur nime ShowCubeRoot.

Klõpsake nuppu Valikud.
Excel kuvab siin näidatud makrosuvandite dialoogiboksi.Exceli VBA alamüksuste ja funktsioonide nimetamine

Dialoogiboksis Makrosuvandid saate määrata makrode valikuid.

Klõpsake suvandit Kiirklahv ja sisestage täht kasti nimega Ctrl.

Sisestatud täht vastab klahvikombinatsioonile, mida soovite makro täitmiseks kasutada. Näiteks kui sisestate väiketähe c, saate makro käivitada, vajutades klahvikombinatsiooni Ctrl+C. Kui sisestate suurtähe, peate klahvikombinatsioonile lisama tõstuklahvi. Näiteks kui sisestate C, saate makro käivitada, vajutades klahvikombinatsiooni Ctrl+Shift+C.

Dialoogiboksi Makrosuvandid sulgemiseks klõpsake nuppu OK ja seejärel makro dialoogiboksi sulgemiseks nuppu Loobu.
Kui olete kiirklahvi määranud, saate makro käivitamiseks seda klahvikombinatsiooni vajutada. Kiirklahv ei tööta, kui see on määratud makrole, mis kasutab argumenti.

Makrodele määratud kiirklahvid alistavad Exceli sisseehitatud kiirklahve. Näiteks Ctrl+C on standardne kiirklahv andmete kopeerimiseks. Kui määrate makrole klahvikombinatsiooni Ctrl+C, ei saa te kopeerimiseks kasutada klahvikombinatsiooni Ctrl+C. Tavaliselt pole see suur asi, sest Excel pakub peaaegu alati muid viise käskude täitmiseks.

Exceli VBA protseduuri täitmine nupu või kujundi abil

Mõnikord võib teile meeldida idee määrata makro töölehel olevale nupule (või mõnele muule kujundile). Exceli makro määramiseks nupule toimige järgmiselt.

Aktiveerige tööleht.

Lisage nupp rühmast Vormi juhtelemendid.
Grupi Vormi juhtelemendid kuvamiseks valige Arendaja → Juhtelemendid → Lisa.Exceli VBA alamüksuste ja funktsioonide nimetamine

Lint, mis näitab juhtelemente, mis on saadaval, kui klõpsate vahekaardil Arendaja nuppu Lisa.

Klõpsake rühmas Vormi juhtelemendid nuppu Nupp.

See on juhtnuppude esimese rea esimene nupp.

Nupu loomiseks lohistage töölehel.
Pärast nupu lisamist töölehel loeb Excel teie mõtteid ja kuvab allpool näidatud makro määramise dialoogiboksi.Exceli VBA alamüksuste ja funktsioonide nimetamine

Kui lisate nupu töölehel, kuvab Excel automaatselt dialoogiboksi Makro määramine.

Valige makro, mille soovite nupule määrata.

Klõpsake nuppu OK.

Pärast ülesande tegemist käivitab nupu klõpsamine makro – täpselt nagu maagia.

Nupu lisamisel pange tähele, et rippmenüüs kuvatakse kaks juhtelementide komplekti: vormi juhtelemendid ja ActiveX-juhtelemendid. Need kaks juhtnuppude rühma näevad välja sarnased, kuid on tegelikult väga erinevad. Praktikas on vormi juhtelemente lihtsam kasutada.

Makro saate määrata ka mis tahes muule kujundile või objektile. Oletagem näiteks, et soovite käivitada makro, kui kasutaja klõpsab ristkülikuobjektil. Järgige neid samme.

Lisage ristkülik töölehel.

Ristküliku sisestamiseks valige Lisa → Illustratsioonid → Kujundid.

Paremklõpsake ristkülikut.

Valige selle kiirmenüüst Määra makro.

Valige makro dialoogiboksis Makro määramine.

Klõpsake nuppu OK.
Pärast nende toimingute tegemist käivitab ristkülikul klõpsamine määratud makro.

Protseduuri täitmine mõnest muust Exceli VBA protseduurist

Exceli VBA protseduuri saate käivitada ka mõnest muust protseduurist. Kui soovite seda proovida, järgige neid samme.

Aktiveerige ShowCubeRoot rutiini sisaldav VBA-moodul.

Sisestage see uus protseduur (kas ShowCubeRoot koodi kohale või alla – sellel pole vahet):

Sub NewSub()
  Helistage ShowCubeRootile
Lõpeta alam

Kui olete lõpetanud, käivitate lihtsalt NewSub makro.

Lihtsaim viis seda teha on liigutada kursor NewSub koodis kuhugi ja vajutada F5. Pange tähele, et see NewSub-protseduur käivitab lihtsalt ShowCubeRoot protseduuri.

Muide, märksõna Helista pole kohustuslik. Avaldus võib koosneda ainult alamprotseduuri nimest. Märksõna Call kasutamine teeb aga täiesti selgeks, et kutsutakse välja protseduur.

Exceli VBA funktsiooni protseduuride täitmine

Erinevalt alamprotseduuridest saab funktsioone täita ainult kahel viisil:

  • Funktsiooni kutsumisega teisest alam- või funktsiooniprotseduurist
  • Funktsiooni kasutades töölehe valemis

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.

Exceli VBA 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)

Exceli VBA 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. Nagu allpool näidatud, kuvatakse dialoogiboksis Funktsiooni lisamine teie enda funktsioon.

Exceli VBA alamüksuste ja funktsioonide nimetamine

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.

See pilt näitab CubeRoot funktsiooni, mida kasutatakse töölehe valemites.

Exceli VBA alamüksuste ja funktsioonide nimetamine

Funktsiooni CubeRoot kasutamine valemites.

Nüüdseks võivad asjad teie jaoks kokku saada.

Leave a Comment

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

Uurige kümmet nõuannet Microsoft Teamsiga parema koosolekukogemuse saamiseks, sealhulgas märkmete tegemine, tausta hägustamine, vaigistamine ja koosolekute salvestamine.

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Lühikeses Word 2013 dokumendis saate kommentaare hõlpsalt sirvida ja uurida. Siit leiate samm-sammult, kuidas kommentaare lugeda ja eemaldada.

Kuidas parandada Word 2016 tavalist malli

Kuidas parandada Word 2016 tavalist malli

Mõnikord varitseb kurjus selles, mis peaks olema Word 2016 peamises mõistlikkuse hoidlas: tavalises mallifailis. Õpi, kuidas taastada normaalne mall ja eemaldada probleemid.

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s, et luua selgem ja professionaalsem ilme. Meie juhend aitab sul lihtsasti navigeerida Wordi funktsioonide kaudu ja tutvustab esimeses reas taande ning rippuva taande lisamise viise.

Kuidas Outlook 2016-s uusi kiireid samme luua

Kuidas Outlook 2016-s uusi kiireid samme luua

Lisaks kuuele kiirtoimingule, mis kuvatakse Outlooki esmakordsel installimisel, on teil valida veelgi rohkemate Quick Step mallide hulgast.

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kui olete esitluse ajal PowerPointi slaididele joonistamiseks kasutanud pliiatsit või markerit, saate joonised järgmise esitluse jaoks salvestada või need kustutada, nii et järgmisel näitamisel alustate puhaste PowerPointi slaididega. Pliiatsi ja markeri jooniste kustutamiseks järgige neid juhiseid: joonte kustutamine […]

Stiili teegi sisu rakenduses SharePoint 2010

Stiili teegi sisu rakenduses SharePoint 2010

Style'i teek sisaldab CSS-faile, XSL-faile ja eelmääratletud mallilehtede, lehepaigutuste ja juhtelementide poolt kasutatavaid pilte rakenduses SharePoint 2010. CSS-failide leidmiseks avaldamissaidi stiiliteegist: valige saidi toimingud → vaade. Kogu saidi sisu. Ilmub saidi sisu. Style raamatukogu asub […]

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Ärge uputage oma publikut tohutute numbritega. Microsoft Excelis saate parandada oma armatuurlaudade ja aruannete loetavust, vormindades numbrid tuhandetes või miljonites.

Kuidas SharePointi saite jagada ja jälgida

Kuidas SharePointi saite jagada ja jälgida

Siit saate teada, kuidas kasutada SharePointi suhtlusvõrgustiku tööriistu, mis võimaldavad üksikisikutel ja rühmadel suhelda, koostööd teha, jagada ja ühendada.

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Julia kuupäevi kasutatakse tootmiskeskkondades sageli ajatemplina ja partiinumbri kiirviitena. Seda tüüpi kuupäevade kodeerimine võimaldab jaemüüjatel, tarbijatel ja teenindusagentidel tuvastada toote valmistamise aja ja seega toote vanuse. Juliuse kuupäevi kasutatakse ka programmeerimises, sõjaväes ja astronoomias. Erinevad […]