Poimenovanje podstavkov in funkcij Excel VBA

Tako kot ljudje, hišni ljubljenčki in orkani mora imeti vsak postopek pod in funkcijo Excel VBA ime. Čeprav je povsem sprejemljivo, da svojega psa poimenujete Hairball Harris, običajno ni dobra ideja, da bi pri poimenovanju postopkov Excl VBA uporabljali tako prost odnos. Pri poimenovanju postopkov Excel VBA morate upoštevati nekaj pravil:

  • Uporabite lahko črke, številke in nekaj ločil, vendar mora biti prvi znak črka.
  • V imenu ne morete uporabiti presledkov ali pik.
  • VBA ne razlikuje med velikimi in malimi črkami.
  • V imenu postopka ne morete uporabiti nobenega od naslednjih znakov: #, $, %, &, @, ^, * ali !. Z drugimi besedami, ime vašega postopka ne more izgledati kot kletvice v stripu.
  • Če napišete funkcijo funkcije za uporabo v formuli, se izogibajte uporabi imena, ki je videti kot naslov celice (na primer A1 ali B52). Pravzaprav Excel dovoljuje taka imena funkcij, toda zakaj bi stvari naredile bolj zmedene, kot so že?
  • Imena postopkov ne smejo biti daljša od 255 znakov. (Seveda nikoli ne bi naredili tako dolgega imena postopka.)

V idealnem primeru ime postopka opisuje namen rutine. Dobra praksa je ustvariti ime tako, da združite glagol in samostalnik – na primer ProcessData, PrintReport, Sort_Array ali CheckFilename.

Nekateri programerji raje uporabljajo stavčna imena, ki zagotavljajo popoln opis postopka. Nekateri primeri vključujejo WriteReportToTextFile in Get_Print_Options_and_Print_Report. Uporaba tako dolgih imen ima prednosti in slabosti. Po eni strani so takšna imena opisna in običajno nedvoumna. Po drugi strani pa traja dlje za tipkanje. Vsak razvije svoj slog poimenovanja, a če vaš makro ni le hiter in umazan začasen makro, je dobro, da ste opisni in se izogibate nesmiselnim imenom, kot so DoIt, Update, Fix in vedno priljubljen Macro1.

Izvajanje podprocedur Excel VBA

Čeprav na tej točki morda ne veste veliko o razvoju podprocedur, je pomembno vedeti, kako te postopke izvajati. Podprocedura je brez vrednosti, če ne veste, kako jo izvesti.

Mimogrede, izvajanje podprocedure pomeni isto kot zagon ali klic podprocedure. Uporabite lahko poljubno terminologijo.

VBA Sub lahko izvedete na več načinov; to je eden od razlogov, da lahko s postopki Sub naredite toliko koristnih stvari. Tukaj je izčrpen seznam načinov za izvedbo podprocedure:

  • Izberite Run → Run Sub/UserForm (v VBE). Excel izvede postopek Sub, v katerem se nahaja kazalec. Ta ukaz menija ima dve možnosti: tipko F5 in gumb Run Sub/UserForm v standardni orodni vrstici v VBE. Te metode ne delujejo, če postopek zahteva enega ali več argumentov.
  • Uporabite Excelovo pogovorno okno Makro. To polje odprete tako, da izberete Razvijalec → Koda → Makri ali z izbiro Pogled → Makri → Makri. Ali pa obidete trak in samo pritisnite Alt+F8. Ko se prikaže pogovorno okno Makro, izberite želeni podpostopek in kliknite Zaženi. V tem pogovornem oknu so navedeni samo postopki, ki ne zahtevajo argumenta.
  • Pritisnite Ctrl+tipka (ali Ctrl+Shift+tipka), ki je dodeljena podproceduri (ob predpostavki, da ste jo dodelili).
  • Kliknite gumb ali obliko na delovnem listu. Gumb ali oblika mora imeti dodeljen subpostopek – kar je zelo enostavno narediti.
  • Iz drugega podprocedura, ki ga napišete.
  • Kliknite gumb, ki ste ga dodali v orodno vrstico za hitri dostop.
  • Iz predmeta po meri, ki ste ga dodali na trak.
  • Ko pride do dogodka. Ti dogodki vključujejo odpiranje delovnega zvezka, zapiranje delovnega zvezka, shranjevanje delovnega zvezka, spremembo celice, aktiviranje lista in druge stvari.
  • Iz okna Immediate v VBE. Samo vnesite ime podprocedure in pritisnite Enter.

Nekatere od teh tehnik so opisane spodaj. Če želite slediti, morate v modul VBA vnesti podproceduro:

Začnite z novim delovnim zvezkom.

Pritisnite Alt+F11, da aktivirate VBE.

V oknu Projekt izberite delovni zvezek.

Izberite Vstavi → Modul, da vstavite nov modul.

V modul vnesite naslednje:

Sub ShowCubeRoot()
  Num = InputBox("Vnesite pozitivno število")
  MsgBox Num ^ (1/3) & " je kockasti koren."
Končni sub

Ta postopek od uporabnika zahteva številko in nato prikaže kockasti koren te številke v sporočilnem polju. Te slike prikazujejo, kaj se zgodi, ko izvedete ta postopek.

Poimenovanje podstavkov in funkcij Excel VBA

Za pridobitev številke uporabite vgrajeno funkcijo VBA InputBox.

Tukaj lahko tudi kaj se zgodi prek funkcije MsgBox.

Poimenovanje podstavkov in funkcij Excel VBA

Prikaz kubičnega korena števila prek funkcije MsgBox.

Mimogrede, ShowCubeRoot ni primer dobrega makra. Ne preverja napak, zato zlahka odpove. Poskusite klikniti gumb Prekliči v vnosnem polju ali vnesti negativno število. Vsako dejanje povzroči sporočilo o napaki.

Neposredno izvajanje postopka Excel VBA Sub

Eden od načinov za izvedbo tega postopka je, da to storite neposredno iz modula VBA, v katerem ste ga definirali. Sledite tem korakom:

Aktivirajte VBE in izberite modul VBA, ki vsebuje postopek.

Premaknite kazalec kamor koli v kodi postopka.

Pritisnite F5 (ali izberite Run → Run Sub/UserForm).

Odgovorite na vnosno polje in kliknite V redu.

Postopek prikaže kubni koren vnesene številke.

Ne morete uporabiti Run → Run Sub/UserForm za izvedbo podprocedure, ki uporablja argumente, ker ne morete posredovati argumentov v proceduro. Če postopek vsebuje enega ali več argumentov, je edini način za njegovo izvedbo, da ga pokličete iz drugega postopka, ki mora zagotoviti argument(e).

Izvajanje postopka iz Excelovega pogovornega okna Makro

Večino časa izvajate podpostopke iz Excela, ne iz VBE. Naslednji koraki opisujejo, kako izvesti makro z uporabo Excelovega pogovornega okna Macro:

Če delate v VBE, aktivirajte Excel.
Če pritisnete Alt+F11, je hitra pot.

Izberite Razvijalec → Koda → Makri (ali pritisnite Alt+F8).
Excel prikaže pogovorno okno, prikazano tukaj.Poimenovanje podstavkov in funkcij Excel VBA

V pogovornem oknu Makro so navedeni vsi razpoložljivi podpostopki.

Izberite makro.

Kliknite Zaženi (ali dvokliknite ime makra v polju s seznamom).

Pogovorno okno Makro ne prikaže podprocedur, ki uporabljajo argumente. To je zato, ker ne morete navesti argumentov.

Izvajanje makra Excel VBA z uporabo bližnjične tipke

Drug način za izvajanje makra je, da pritisnete njegovo bližnjično tipko. Toda preden lahko uporabite to metodo, morate makru dodeliti bližnjično tipko.

Ko začnete snemati makro, imate možnost dodeliti bližnjico v pogovornem oknu Record Macro . Če ustvarite postopek brez uporabe snemalnika makrov, lahko dodelite tipko za bližnjico (ali spremenite obstoječo bližnjično tipko) z naslednjimi koraki:

Izberite Razvijalec → Koda → Makri.

S seznama izberite ime podprocedure.

V tem primeru se postopek imenuje ShowCubeRoot.

Kliknite gumb Možnosti.
Excel prikaže pogovorno okno Možnosti makra, ki je prikazano tukaj.Poimenovanje podstavkov in funkcij Excel VBA

Pogovorno okno Možnosti makra vam omogoča nastavitev možnosti za svoje makre.

Kliknite možnost bližnjične tipke in vnesite črko v polje z oznako Ctrl.

Črka, ki jo vnesete, ustreza kombinaciji tipk, ki jo želite uporabiti za izvajanje makra. Če na primer vnesete malo črko c, lahko izvedete makro tako, da pritisnete Ctrl+C. Če vnesete veliko črko, morate kombinaciji tipk dodati tipko Shift. Če na primer vnesete C, lahko izvedete makro tako, da pritisnete Ctrl+Shift+C.

Kliknite V redu, da zaprete pogovorno okno Možnosti makra, in nato kliknite Prekliči, da zaprete pogovorno okno Makro.
Ko dodelite tipko za bližnjico, lahko pritisnete to kombinacijo tipk, da izvedete makro. Tipka za bližnjico ne deluje, če je dodeljena makru, ki uporablja argument.

Bližnjične tipke, ki jih dodelite makrom, preglasijo Excelove vgrajene bližnjične tipke. Na primer, Ctrl+C je standardna bližnjica za kopiranje podatkov. Če makru dodelite Ctrl+C, za kopiranje ne morete uporabiti Ctrl+C. To običajno ni velika stvar, saj Excel skoraj vedno ponuja druge načine za izvajanje ukazov.

Izvajanje postopka Excel VBA iz gumba ali oblike

Včasih vam bo morda všeč ideja o dodelitvi makra gumbu (ali kateri koli drugi obliki) na delovnem listu. Če želite gumbu dodeliti makro Excel, sledite tem korakom:

Aktivirajte delovni list.

Dodajte gumb iz skupine Kontrolniki obrazca.
Če želite prikazati skupino Kontrolniki obrazca, izberite Razvijalec → Kontrolniki → Vstavi.Poimenovanje podstavkov in funkcij Excel VBA

Trak, ki prikazuje kontrolnike, ki so na voljo, ko kliknete Vstavi na zavihku Razvijalec.

Kliknite orodje Gumb v skupini Kontrolniki obrazca.

To je prvi gumb v prvi vrstici kontrolnikov.

Povlecite delovni list, da ustvarite gumb.
Ko dodate gumb na delovni list, vam Excel prebere misli in prikaže pogovorno okno Dodeli makro, prikazano spodaj.Poimenovanje podstavkov in funkcij Excel VBA

Ko dodate gumb na delovni list, Excel samodejno prikaže pogovorno okno Dodeli makro.

Izberite makro, ki ga želite dodeliti gumbu.

Kliknite V redu.

Ko opravite nalogo, se s klikom na gumb izvede makro – tako kot čarovnija.

Ko dodate gumb, upoštevajte, da spustno polje prikazuje dva niza kontrolnikov: kontrolniki obrazca in kontrolniki ActiveX. Ti dve skupini kontrol sta si podobni, v resnici pa sta si zelo različni. V praksi so kontrolniki obrazca enostavnejši za uporabo.

Makro lahko dodelite tudi kateri koli drugi obliki ali predmetu. Predpostavimo na primer, da želite izvesti makro, ko uporabnik klikne predmet Rectangle. Sledite tem korakom:

Dodajte pravokotnik na delovni list.

Vstavite pravokotnik tako, da izberete Vstavi → Ilustracije → Oblike.

Z desno tipko miške kliknite pravokotnik.

V priročnem meniju izberite Dodeli makro.

Izberite makro v pogovornem oknu Dodeli makro.

Kliknite V redu.
Ko izvedete te korake, se s klikom na pravokotnik izvede dodeljeni makro.

Izvajanje postopka iz drugega postopka Excel VBA

Postopek Excel VBA lahko izvedete tudi iz drugega postopka. Sledite tem korakom, če želite to poskusiti:

Aktivirajte modul VBA, ki vsebuje rutino ShowCubeRoot.

Vnesite ta nov postopek (bodisi nad ali pod kodo ShowCubeRoot - ni razlike):

Sub NewSub()
  Pokličite ShowCubeRoot
Končni sub

Ko je končano, preprosto izvedete makro NewSub.

Najlažji način za to je, da premaknete kazalec kamor koli znotraj kode NewSub in pritisnete F5. Upoštevajte, da ta postopek NewSub preprosto izvede postopek ShowCubeRoot.

Mimogrede, ključna beseda Call ni obvezna. Stavek je lahko sestavljen samo iz imena podprocedure. Vendar pa uporaba ključne besede Call popolnoma jasno pokaže, da se postopek kliče.

Izvajanje postopkov funkcije Excel VBA

Funkcije, za razliko od podprocedur, se lahko izvajajo samo na dva načina:

  • S klicem funkcije iz drugega podprocedura ali funkcije funkcije
  • Z uporabo funkcije v formuli delovnega lista

Preizkusite to preprosto funkcijo. Vnesite ga v modul VBA:

Funkcija CubeRoot (število)
  Kocka Koren = število ^ (1/3)
Končna funkcija

Ta funkcija je precej slaba; izračuna le kubični koren števila, ki mu je bilo posredovano kot argument. Vendar pa zagotavlja izhodišče za razumevanje funkcij. Ponazarja tudi pomemben koncept funkcij: kako vrniti vrednost. (Se spomnite, da funkcija vrne vrednost, kajne?)

Upoštevajte, da ena vrstica kode, ki sestavlja ta postopek funkcije, izvede izračun. Rezultat matematike (število na potenco 1⁄3) je dodeljen spremenljivki CubeRoot. Ni naključje, da je CubeRoot tudi ime funkcije. Če želite funkciji povedati, katero vrednost naj vrne, to vrednost dodelite imenu funkcije.

Klicanje funkcije Excel VBA iz podprocedure

Ker funkcije ne morete izvesti neposredno, jo morate poklicati iz drugega postopka. V isti modul VBA, ki vsebuje funkcijo CubeRoot, vnesite naslednji preprost postopek :

Sub CallerSub()
  Odgovor = Kockasti koren (125)
  MsgBox Ans
Končni sub

Ko izvedete postopek CallerSub, Excel prikaže sporočilo, ki vsebuje vrednost spremenljivke Ans, ki je 5.

Evo, kaj se dogaja: funkcija CubeRoot se izvede in prejme argument 125. Izračun izvede koda funkcije (z uporabo vrednosti, posredovane kot argument), vrnjena vrednost funkcije pa je dodeljena spremenljivki Ans. Funkcija MsgBox nato prikaže vrednost spremenljivke Ans.

Poskusite spremeniti argument, ki je bil posredovan funkciji CubeRoot, in znova zaženite makro CallerSub. Deluje tako, kot bi moralo – ob predpostavki, da date funkciji veljaven argument (pozitivno število).

Mimogrede, postopek CallerSub bi lahko nekoliko poenostavili. Spremenljivka Ans v resnici ni potrebna, razen če bo vaša koda to spremenljivko uporabila pozneje. Za enak rezultat lahko uporabite to eno samo izjavo:

MsgBox CubeRoot (125)

Klicanje funkcije Excel VBA iz formule delovnega lista

Zdaj je čas, da pokličete ta postopek funkcije VBA iz formule delovnega lista. Aktivirajte delovni list v istem delovnem zvezku, ki vsebuje definicijo funkcije CubeRoot. Nato v katero koli celico vnesite naslednjo formulo:

=kockasti koren (1728)

Celica prikaže 12, kar je dejansko kubni koren 1728.

Kot bi lahko pričakovali, lahko uporabite sklic na celico kot argument za funkcijo CubeRoot. Na primer, če celica A1 vsebuje vrednost, lahko vnesete =CubeRoot(A1) . V tem primeru funkcija vrne število, pridobljeno z izračunom kubičnega korena vrednosti v A1.

To funkcijo lahko uporabite poljubno število krat na delovnem listu. Tako kot vgrajene funkcije Excela, se vaše funkcije po meri pojavijo v pogovornem oknu Vstavi funkcijo. Kliknite gumb v orodni vrstici Vstavi funkcijo in izberite kategorijo Uporabniško določeno. Kot je prikazano spodaj, je v pogovornem oknu Vstavi funkcijo navedena vaša lastna funkcija.

Poimenovanje podstavkov in funkcij Excel VBA

Funkcija CubeRoot se pojavi v kategoriji User Defined pogovornega okna Vstavi funkcijo.

Če želite, da se v pogovornem oknu Vstavi funkcijo prikaže opis funkcije, sledite tem korakom:

Izberite Razvijalec → Koda → Makri.
Excel prikaže pogovorno okno Makro, vendar CubeRoot ni prikazan na seznamu. (CubeRoot je funkcija funkcije in ta seznam prikazuje samo podprocedure.) Ne skrbite.

V polje Ime makra vnesite besedo CubeRoot.

Kliknite gumb Možnosti.

V polje Opis vnesite opis funkcije.

Kliknite V redu, da zaprete pogovorno okno Možnosti makra.

Zaprite pogovorno okno Makro s klikom na gumb Prekliči.
To opisno besedilo se zdaj prikaže v pogovornem oknu Vstavi funkcijo.

Ta slika prikazuje funkcijo CubeRoot, ki se uporablja v formulah delovnega lista.

Poimenovanje podstavkov in funkcij Excel VBA

Uporaba funkcije CubeRoot v formulah.

Do zdaj se vam bodo stvari morda začele sestavljati.


Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows

Kako preprečiti, da Microsoft Word odpira datoteke v načinu samo za branje v sistemu Windows Microsoft Word odpira datoteke v načinu samo za branje, zaradi česar jih je nemogoče urejati? Ne skrbite, metode so spodaj

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako popraviti nepravilno tiskanje dokumentov Microsoft Word

Kako odpraviti napake pri tiskanju nepravilnih dokumentov Microsoft Word Napake pri tiskanju dokumentov Word s spremenjeno pisavo, neurejenimi odstavki, manjkajočim besedilom ali izgubljeno vsebino so precej pogoste. Vendar pa ne

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Izbrišite risbe s peresom in označevalnikom na diapozitivih PowerPoint

Če ste med predstavitvijo uporabili pero ali označevalnik za risanje po diapozitivih PowerPoint, lahko risbe shranite za naslednjo predstavitev ali jih izbrišete, tako da boste naslednjič, ko ga pokažete, začeli s čistimi PowerPointovimi diapozitivi. Sledite tem navodilom za brisanje risb s peresom in označevalnikom: Brisanje črt ena na […]

Vsebina knjižnice slogov v SharePointu 2010

Vsebina knjižnice slogov v SharePointu 2010

Knjižnica slogov vsebuje datoteke CSS, datoteke Extensible Stylesheet Language (XSL) in slike, ki jih uporabljajo vnaprej določene glavne strani, postavitve strani in kontrolniki v SharePointu 2010. Če želite poiskati datoteke CSS v knjižnici slogov na založniškem mestu: Izberite Dejanja mesta→ Pogled Vsa vsebina spletnega mesta. Prikaže se vsebina spletnega mesta. Knjižnica Style se nahaja v […]

Oblikujte številke v tisoče in milijone v poročilih Excel

Oblikujte številke v tisoče in milijone v poročilih Excel

Ne preobremenjujte občinstva z ogromnimi številkami. V Microsoft Excelu lahko izboljšate berljivost svojih nadzornih plošč in poročil tako, da oblikujete svoje številke tako, da se prikažejo v tisočih ali milijonih.

Kako deliti in spremljati SharePointova spletna mesta

Kako deliti in spremljati SharePointova spletna mesta

Naučite se uporabljati SharePointova orodja za socialno mreženje, ki posameznikom in skupinam omogočajo komunikacijo, sodelovanje, skupno rabo in povezovanje.

Kako pretvoriti datume v julijanske oblike v Excelu

Kako pretvoriti datume v julijanske oblike v Excelu

Julijanski datumi se v proizvodnih okoljih pogosto uporabljajo kot časovni žig in hitra referenca za številko serije. Ta vrsta datumskega kodiranja omogoča trgovcem na drobno, potrošnikom in servisnim agentom, da ugotovijo, kdaj je bil izdelek izdelan in s tem starost izdelka. Julijanski datumi se uporabljajo tudi v programiranju, vojski in astronomiji. Drugačen […]

Kako ustvariti spletno aplikacijo Access

Kako ustvariti spletno aplikacijo Access

Spletno aplikacijo lahko ustvarite v Accessu 2016. Kaj je torej spletna aplikacija? No, splet pomeni, da je na spletu, aplikacija pa je le okrajšava za »aplikacijo«. Spletna aplikacija po meri je spletna aplikacija baze podatkov, do katere dostopate iz oblaka z uporabo brskalnika. Spletno aplikacijo gradite in vzdržujete v namizni različici […]

Vrstica za hitri zagon v SharePointu 2010

Vrstica za hitri zagon v SharePointu 2010

Večina strani v SharePointu 2010 prikaže seznam navigacijskih povezav v vrstici za hitri zagon na levi strani strani. Vrstica za hitri zagon prikazuje povezave do predstavljene vsebine spletnega mesta, kot so seznami, knjižnice, spletna mesta in strani za objavljanje. Vrstica za hitri zagon vključuje dve zelo pomembni povezavi: Povezava do vse vsebine spletnega mesta: […]

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Kaj pomenijo sporočila o napakah reševalca v Excelu?

Pri preprostih težavah reševalec v Excelu običajno hitro najde optimalne vrednosti spremenljivke reševalca za ciljno funkcijo. Toda v nekaterih primerih ima Solver težave pri iskanju vrednosti spremenljivke Solver, ki optimizirajo ciljno funkcijo. V teh primerih Solver običajno prikaže sporočilo ali sporočilo o napaki, ki opisuje ali razpravlja o težavi, ki […]