Imenovanje Excel VBA Subs i funkcija

Poput ljudi, kućnih ljubimaca i uragana, svaki Excel VBA postupak i funkcija mora imati naziv. Iako je sasvim prihvatljivo nazvati svog psa Hairball Harris, obično nije dobra ideja koristiti takav slobodni stav kada imenujete Excl VBA procedure. Prilikom imenovanja Excel VBA procedura morate slijediti nekoliko pravila:

  • Možete koristiti slova, brojeve i neke interpunkcijske znakove, ali prvi znak mora biti slovo.
  • U nazivu ne možete koristiti razmake ili točke.
  • VBA ne razlikuje velika i mala slova.
  • Ne možete koristiti nijedan od sljedećih znakova u nazivu procedure: #, $, %, &, @, ^, * ili !. Drugim riječima, naziv vaše procedure ne može izgledati kao psovke u stripu.
  • Ako napišete funkciju funkcije za korištenje u formuli, izbjegavajte korištenje imena koje izgleda kao adresa ćelije (na primjer, A1 ili B52). Zapravo, Excel dopušta takve nazive funkcija, ali zašto bi stvari bile zbunjujuće nego što jesu?
  • Nazivi postupaka ne mogu biti duži od 255 znakova. (Naravno, nikada ne biste napravili ovoliko dugo ime procedure.)

U idealnom slučaju, naziv procedure opisuje svrhu rutine. Dobra praksa je stvoriti naziv kombiniranjem glagola i imenice — na primjer, ProcessData, PrintReport, Sort_Array ili CheckFilename.

Neki programeri radije koriste imena nalik rečenicama koja pružaju potpuni opis postupka. Neki primjeri uključuju WriteReportToTextFile i Get_Print_Options_and_Print_Report. Upotreba tako dugih imena ima prednosti i nedostatke. S jedne strane, takvi su nazivi opisni i obično nedvosmisleni. S druge strane, za tipkanje im je potrebno dulje. Svatko razvija stil imenovanja, ali ako vaša makronaredba nije samo brza i prljava privremena makronaredba, dobra je ideja biti deskriptivna i izbjegavati besmislena imena kao što su DoIt, Update, Fix i uvijek popularni Macro1.

Izvršavanje Excel VBA potprocedura

Iako možda ne znate puno o razvoju podprocedura u ovom trenutku, važno je znati kako izvršiti te procedure. Sub procedura je bezvrijedna osim ako ne znate kako je izvršiti.

Usput, izvršavanje Sub procedure znači isto što i pokretanje ili pozivanje Sub procedure. Možete koristiti terminologiju koju želite.

VBA Sub možete izvršiti na mnogo načina; to je jedan od razloga zašto možete učiniti toliko korisnih stvari s Sub procedurama. Evo iscrpnog popisa načina za izvođenje podprocedure:

  • Odaberite Run → Run Sub/UserForm (u VBE). Excel izvršava Sub proceduru u kojoj se nalazi pokazivač. Ova naredba izbornika ima dvije alternative: tipku F5 i gumb Run Sub/UserForm na standardnoj alatnoj traci u VBE-u. Ove metode ne rade ako procedura zahtijeva jedan ili više argumenata.
  • Koristite Excelov dijaloški okvir Makro. Ovaj okvir otvarate odabirom Programer → Kod → Makronaredbe ili odabirom Pogled → Makronaredbe → Makronaredbe. Ili zaobiđite traku i samo pritisnite Alt+F8. Kada se pojavi dijaloški okvir Makro, odaberite željenu podproceduru i kliknite Pokreni. Ovaj dijaloški okvir navodi samo procedure koje ne zahtijevaju argument.
  • Pritisnite Ctrl+tipka (ili Ctrl+Shift+tipka) koja je dodijeljena podproceduri (pod pretpostavkom da ste je dodijelili).
  • Kliknite gumb ili oblik na radnom listu. Gumb ili oblik mora imati dodijeljenu podproceduru — što je vrlo jednostavno za napraviti.
  • Iz druge podprocedure koju napišete.
  • Kliknite gumb koji ste dodali na alatnu traku za brzi pristup.
  • Iz prilagođene stavke koju ste dodali na vrpcu.
  • Kada se dogodi neki događaj. Ti događaji uključuju otvaranje radne knjige, zatvaranje radne knjige, spremanje radne knjige, promjenu ćelije, aktiviranje lista i druge stvari.
  • Iz prozora Immediate u VBE. Samo upišite naziv podprocedure i pritisnite Enter.

Neke od ovih tehnika obrađene su u nastavku. Da biste slijedili dalje, morate unijeti Sub proceduru u VBA modul:

Počnite s novom radnom bilježnicom.

Pritisnite Alt+F11 da aktivirate VBE.

Odaberite radnu knjigu u prozoru Projekt.

Odaberite Umetanje → Modul za umetanje novog modula.

Unesite sljedeće u modul:

Sub ShowCubeRoot()
  Num = InputBox("Unesite pozitivan broj")
  MsgBox Num ^ (1/3) & " je kockasti korijen."
Kraj Sub

Ovaj postupak od korisnika traži broj, a zatim prikazuje kockasti korijen tog broja u okviru za poruke. Ove slike pokazuju što se događa kada izvršite ovaj postupak.

Imenovanje Excel VBA Subs i funkcija

Korištenje ugrađene funkcije VBA InputBox za dobivanje broja.

Vi također što se događa putem MsgBox funkcije ovdje.

Imenovanje Excel VBA Subs i funkcija

Prikaz kubnog korijena broja putem funkcije MsgBox.

Inače, ShowCubeRoot nije primjer dobre makronaredbe. Ne provjerava greške, tako da lako kvari. Pokušajte kliknuti gumb Odustani u okviru za unos ili unijeti negativan broj. Svaka radnja rezultira porukom o pogrešci.

Izravno izvršavanje Excel VBA Sub procedure

Jedan od načina da izvršite ovu proceduru je da to učinite izravno iz VBA modula u kojem ste ga definirali. Prati ove korake:

Aktivirajte VBE i odaberite VBA modul koji sadrži proceduru.

Pomaknite kursor bilo gdje u kodu procedure.

Pritisnite F5 (ili odaberite Run → Run Sub/UserForm).

Odgovorite na okvir za unos i kliknite U redu.

Postupak prikazuje kubni korijen broja koji ste unijeli.

Ne možete koristiti Run → Run Sub/UserForm za izvođenje podprocedure koja koristi argumente, jer nemate načina da proslijedite argumente proceduri. Ako procedura sadrži jedan ili više argumenata, jedini način da se izvrši je da je pozovete iz druge procedure - koja mora dati argument(e).

Izvođenje postupka iz dijaloškog okvira Macro programa Excel

Većinu vremena izvršavate Sub procedure iz Excela, a ne iz VBE-a. Sljedeći koraci opisuju kako izvršiti makronaredbu pomoću dijaloškog okvira Macro programa Excel:

Ako radite u VBE-u, aktivirajte Excel.
Pritiskom na Alt+F11 brza je ruta.

Odaberite Developer → Code → Macros (ili pritisnite Alt+F8).
Excel prikazuje dijaloški okvir prikazan ovdje.Imenovanje Excel VBA Subs i funkcija

Dijaloški okvir Makro prikazuje sve dostupne potprocedure.

Odaberite makronaredbu.

Kliknite Pokreni (ili dvaput kliknite naziv makronaredbe u okviru s popisom).

Dijaloški okvir Makro ne prikazuje potprocedure koje koriste argumente. To je zato što ne postoji način da navedete argumente.

Izvršavanje Excel VBA makronaredbe pomoću tipke prečaca

Drugi način za izvršavanje makronaredbe je da pritisnete njegovu tipku prečaca. Ali prije nego što možete koristiti ovu metodu, makronaredbi morate dodijeliti tipku prečaca.

Imate priliku dodijeliti tipku prečaca u dijaloškom okviru Record Macro kada počnete snimati makronaredbu . Ako izradite proceduru bez korištenja makro snimača, možete dodijeliti tipku prečaca (ili promijeniti postojeću tipku prečaca) pomoću sljedećih koraka:

Odaberite Razvojni programer → Kod → Makronaredbe.

Odaberite naziv potprocedure s okvira s popisom.

U ovom primjeru, procedura se zove ShowCubeRoot.

Kliknite gumb Opcije.
Excel prikazuje dijaloški okvir Mogućnosti makronaredbe prikazan ovdje.Imenovanje Excel VBA Subs i funkcija

Dijaloški okvir Mogućnosti makronaredbe omogućuje vam postavljanje opcija za svoje makronaredbe.

Kliknite opciju Tipka prečaca i unesite slovo u okvir s oznakom Ctrl.

Slovo koje unesete odgovara kombinaciji tipki koju želite koristiti za izvršavanje makronaredbe. Na primjer, ako unesete malo slovo c, makronaredbu možete izvršiti pritiskom na Ctrl+C. Ako unesete veliko slovo, trebate dodati tipku Shift u kombinaciju tipki. Na primjer, ako unesete C, makronaredbu možete izvršiti pritiskom na Ctrl+Shift+C.

Kliknite U redu da zatvorite dijaloški okvir Mogućnosti makronaredbe, a zatim kliknite Odustani da zatvorite dijaloški okvir Makro.
Nakon što ste dodijelili tipku prečaca, možete pritisnuti tu kombinaciju tipki da biste izvršili makronaredbu. Tipka prečaca ne radi ako je dodijeljena makronaredbi koja koristi argument.

Tipke prečaca koje dodijelite makronaredbama nadjačavaju ugrađene tipke prečaca programa Excel. Na primjer, Ctrl+C je standardni prečac za kopiranje podataka. Ako makronaredbi dodijelite Ctrl+C, ne možete koristiti Ctrl+C za kopiranje. To obično nije velika stvar jer Excel gotovo uvijek nudi druge načine za izvršavanje naredbi.

Izvođenje Excel VBA procedure s gumba ili oblika

Ponekad bi vam se mogla svidjeti ideja da makronaredbu dodijelite gumbu (ili bilo kojem drugom obliku) na radnom listu. Da biste gumbu dodijelili makronaredbu programa Excel, slijedite ove korake:

Aktivirajte radni list.

Dodajte gumb iz grupe Kontrole obrasca.
Za prikaz grupe Kontrola obrasca, odaberite Razvojni programer → Kontrole → Umetanje.Imenovanje Excel VBA Subs i funkcija

Vrpca koja prikazuje kontrole dostupne kada kliknete Umetni na kartici Razvojni programer.

Kliknite alat Button u grupi Kontrole obrasca.

To je prvi gumb u prvom redu kontrola.

Povucite radni list da biste stvorili gumb.
Nakon što dodate gumb na radni list, Excel čita vaše misli i prikazuje dijaloški okvir Dodjela makronaredbe prikazan u nastavku.Imenovanje Excel VBA Subs i funkcija

Kada dodate gumb na radni list, Excel automatski prikazuje dijaloški okvir Dodjela makronaredbe.

Odaberite makronaredbu koju želite dodijeliti gumbu.

Kliknite OK.

Nakon što izvršite zadatak, klikom na gumb izvršava se makronaredba — baš kao magijom.

Kada dodate gumb, imajte na umu da padajući okvir prikazuje dva skupa kontrola: kontrole obrasca i ActiveX kontrole. Ove dvije skupine kontrola izgledaju slično, ali su zapravo vrlo različite. U praksi su kontrole obrasca jednostavnije za korištenje.

Također možete dodijeliti makronaredbu bilo kojem drugom obliku ili objektu. Na primjer, pretpostavimo da biste željeli izvršiti makronaredbu kada korisnik klikne objekt Rectangle. Prati ove korake:

Dodajte pravokutnik na radni list.

Umetnite pravokutnik odabirom Umetanje → Ilustracije → Oblici.

Desnom tipkom miša kliknite pravokutnik.

Na izborniku prečaca odaberite Dodijeli makronaredbu.

Odaberite makronaredbu u dijaloškom okviru Dodjela makronaredbe.

Kliknite OK.
Nakon što izvršite ove korake, klikom na pravokutnik izvršava se dodijeljena makronaredba.

Izvođenje procedure iz druge Excel VBA procedure

Također možete izvršiti Excel VBA proceduru iz druge procedure. Slijedite ove korake ako želite ovo isprobati:

Aktivirajte VBA modul koji sadrži rutinu ShowCubeRoot.

Unesite ovu novu proceduru (bilo iznad ili ispod ShowCubeRoot koda - nema razlike):

Sub NewSub()
  Nazovite ShowCubeRoot
Kraj Sub

Kada završite, jednostavno izvršavate makronaredbu NewSub.

Najlakši način da to učinite je da pomaknete kursor bilo gdje unutar NewSub koda i pritisnete F5. Primijetite da ova NewSub procedura jednostavno izvršava proceduru ShowCubeRoot.

Usput, ključna riječ Poziv nije obavezna. Izjava se može sastojati samo od naziva Sub procedure. Međutim, korištenje ključne riječi Call savršeno jasno daje do znanja da se poziva procedura.

Izvršavanje procedura Excel VBA funkcije

Funkcije, za razliku od podprocedura, mogu se izvršiti na samo dva načina:

  • Pozivanjem funkcije iz druge Sub procedure ili Function procedure
  • Korištenjem funkcije u formuli radnog lista

Isprobajte ovu jednostavnu funkciju. Unesite ga u VBA modul:

Funkcija CubeRoot(broj)
  Kockasti korijen = broj ^ (1/3)
Završna funkcija

Ova funkcija je prilično slaba; on samo izračunava kubni korijen broja koji mu je proslijeđen kao argument. To, međutim, pruža početnu točku za razumijevanje funkcija. Također ilustrira važan koncept o funkcijama: kako vratiti vrijednost. (Sjećate se da funkcija vraća vrijednost, zar ne?)

Primijetite da jedan redak koda koji čini ovu proceduru funkcije izvodi izračun. Rezultat matematike (broj na stepen od 1⁄3) pripisuje se varijabli CubeRoot. Nije slučajno, CubeRoot je i naziv funkcije. Da biste rekli funkciji koju vrijednost treba vratiti, dodijelite tu vrijednost imenu funkcije.

Pozivanje funkcije Excel VBA iz potprocedure

Budući da ne možete izravno izvršiti funkciju, morate je pozvati iz druge procedure. Unesite sljedeću jednostavnu proceduru u isti VBA modul koji sadrži funkciju CubeRoot:

Sub CallerSub()
  Odgovor = Kockasti korijen (125)
  MsgBox Ans
Kraj Sub

Kada izvršite CallerSub proceduru, Excel prikazuje okvir s porukom koji sadrži vrijednost varijable Ans, koja je 5.

Evo što se događa: funkcija CubeRoot se izvršava i prima argument od 125. Izračun se izvodi pomoću koda funkcije (koristeći vrijednost proslijeđenu kao argument), a vraćena vrijednost funkcije dodjeljuje se varijabli Ans. Funkcija MsgBox tada prikazuje vrijednost varijable Ans.

Pokušajte promijeniti argument koji je proslijeđen funkciji CubeRoot i ponovno pokrenite makronaredbu CallerSub. Radi baš kako bi trebao - pod pretpostavkom da date funkciji valjani argument (pozitivan broj).

Inače, postupak CallerSub bi se mogao malo pojednostaviti. Varijabla Ans zapravo nije potrebna osim ako vaš kod kasnije ne koristi tu varijablu. Možete koristiti ovu jednu naredbu da dobijete isti rezultat:

MsgBox CubeRoot (125)

Pozivanje Excel VBA funkcije iz formule radnog lista

Sada je vrijeme da pozovete ovu proceduru VBA funkcije iz formule radnog lista. Aktivirajte radni list u istoj radnoj knjizi koja sadrži definiciju funkcije CubeRoot. Zatim u bilo koju ćeliju unesite sljedeću formulu:

=kockasti korijen (1728)

Ćelija prikazuje 12, što je doista kubni korijen od 1728.

Kao što možete očekivati, možete koristiti referencu ćelije kao argument za funkciju CubeRoot. Na primjer, ako ćelija A1 sadrži vrijednost, možete unijeti =CubeRoot(A1) . U ovom slučaju, funkcija vraća broj dobiven izračunavanjem kubnog korijena vrijednosti u A1.

Ovu funkciju možete koristiti bilo koji broj puta u radnom listu. Poput ugrađenih funkcija Excela, vaše se prilagođene funkcije pojavljuju u dijaloškom okviru Umetanje funkcije. Kliknite gumb Umetanje funkcije na alatnoj traci i odaberite kategoriju Korisnički definirano. Kao što je prikazano u nastavku, dijaloški okvir Umetanje funkcije navodi vašu vlastitu funkciju.

Imenovanje Excel VBA Subs i funkcija

Funkcija CubeRoot pojavljuje se u kategoriji Korisnički definirano dijaloškog okvira Umetanje funkcije.

Ako želite da dijaloški okvir Umetanje funkcije prikazuje opis funkcije, slijedite ove korake:

Odaberite Programer → Kod → Makronaredbe.
Excel prikazuje dijaloški okvir Makronaredba, ali se CubeRoot ne pojavljuje na popisu. (CubeRoot je funkcija funkcije, a ovaj popis prikazuje samo potprocedure.) Ne brinite.

Upišite riječ CubeRoot u okvir Ime makronaredbe.

Kliknite gumb Opcije.

Unesite opis funkcije u okvir Opis.

Kliknite OK da zatvorite dijaloški okvir Mogućnosti makronaredbe.

Zatvorite dijaloški okvir Macro klikom na gumb Odustani.
Ovaj se opisni tekst sada pojavljuje u dijaloškom okviru Umetanje funkcije.

Ova slika prikazuje funkciju CubeRoot koja se koristi u formulama radnog lista.

Imenovanje Excel VBA Subs i funkcija

Korištenje funkcije CubeRoot u formulama.

Do sada bi vam se stvari možda počele slagati.


Kako blokirati Microsoft Word da otvara datoteke u načinu rada samo za čitanje u sustavu Windows

Kako blokirati Microsoft Word da otvara datoteke u načinu rada samo za čitanje u sustavu Windows

Kako blokirati Microsoft Word da otvara datoteke u načinu rada samo za čitanje u sustavu Windows Microsoft Word otvara datoteke u načinu rada samo za čitanje, što onemogućuje njihovo uređivanje? Ne brinite, metode su navedene u nastavku

Kako popraviti pogrešan ispis Microsoft Word dokumenata

Kako popraviti pogrešan ispis Microsoft Word dokumenata

Kako popraviti pogreške u ispisu netočnih Microsoft Word dokumenata Pogreške u ispisu Word dokumenata s promijenjenim fontovima, neurednim odlomcima, nedostajućim tekstom ili izgubljenim sadržajem vrlo su česte. Međutim, nemojte

Izbrišite crteže olovkom i markerom na svojim PowerPoint slajdovima

Izbrišite crteže olovkom i markerom na svojim PowerPoint slajdovima

Ako ste upotrijebili olovku ili marker za crtanje na PowerPoint slajdovima tijekom prezentacije, možete spremiti crteže za sljedeću prezentaciju ili ih izbrisati tako da ćete sljedeći put kada ih pokažete početi s čistim PowerPoint slajdovima. Slijedite ove upute za brisanje crteža olovkom i markerom: Brisanje linija jedan na […]

Sadržaj biblioteke stilova u sustavu SharePoint 2010

Sadržaj biblioteke stilova u sustavu SharePoint 2010

Biblioteka stilova sadrži CSS datoteke, datoteke Extensible Stylesheet Language (XSL) i slike koje koriste unaprijed definirane glavne stranice, izgledi stranica i kontrole u SharePointu 2010. Da biste locirali CSS datoteke u biblioteci stilova web-mjesta za objavljivanje: Odaberite Radnje web-mjesta→Prikaz Sav sadržaj web-mjesta. Pojavljuje se sadržaj stranice. Knjižnica Style nalazi se u […]

Formatirajte brojeve u tisućama i milijunima u Excel izvješćima

Formatirajte brojeve u tisućama i milijunima u Excel izvješćima

Nemojte zatrpavati svoju publiku ogromnim brojevima. U Microsoft Excelu možete poboljšati čitljivost svojih nadzornih ploča i izvješća formatiranjem brojeva tako da se prikazuju u tisućama ili milijunima.

Kako dijeliti i pratiti SharePoint web-mjesta

Kako dijeliti i pratiti SharePoint web-mjesta

Naučite kako koristiti SharePointove alate za društveno umrežavanje koji pojedincima i grupama omogućuju komunikaciju, suradnju, dijeljenje i povezivanje.

Kako pretvoriti datume u julijanske formate u Excelu

Kako pretvoriti datume u julijanske formate u Excelu

Julijanski datumi se često koriste u proizvodnim okruženjima kao vremenska oznaka i brza referenca za broj serije. Ova vrsta datumskog kodiranja omogućuje trgovcima na malo, potrošačima i uslužnim agentima da identificiraju kada je proizvod napravljen, a time i starost proizvoda. Julijanski datumi se također koriste u programiranju, vojsci i astronomiji. Drugačiji […]

Kako stvoriti Access web aplikaciju

Kako stvoriti Access web aplikaciju

Možete izraditi web-aplikaciju u Accessu 2016. Dakle, što je uopće web-aplikacija? Pa, web znači da je online, a aplikacija je samo skraćenica za "aplikaciju". Prilagođena web-aplikacija je online aplikacija baze podataka kojoj se pristupa iz oblaka pomoću preglednika. Vi gradite i održavate web-aplikaciju u verziji za stolna računala […]

Traka za brzo pokretanje u sustavu SharePoint 2010

Traka za brzo pokretanje u sustavu SharePoint 2010

Većina stranica u sustavu SharePoint 2010 prikazuje popis navigacijskih veza na traci za brzo pokretanje na lijevoj strani stranice. Traka za brzo pokretanje prikazuje veze na istaknuti sadržaj web-mjesta kao što su popisi, knjižnice, web-mjesta i stranice za objavljivanje. Traka za brzo pokretanje uključuje dvije vrlo važne veze: vezu za sav sadržaj web-mjesta: […]

Što znače poruke o greškama Solvera u Excelu?

Što znače poruke o greškama Solvera u Excelu?

Za jednostavne probleme, Solver u Excelu obično brzo pronalazi optimalne vrijednosti varijable Solvera za funkciju cilja. No, u nekim slučajevima, Solver ima problema s pronalaženjem vrijednosti varijable Solvera koje optimiziraju funkciju cilja. U tim slučajevima, Solver obično prikazuje poruku ili poruku o pogrešci koja opisuje ili raspravlja o problemu koji […]