Iako je važno znati kako se odnositi na objekte, ne možete napraviti nikakvo korisno Excel VBA programiranje jednostavnim upućivanjem na objekt. Da biste postigli nešto značajno, morate učiniti jednu od dvije stvari:
S doslovno tisućama dostupnih svojstava i metoda, lako možete biti preplavljeni. Samo zapamtite, nikada nećete morati koristiti većinu dostupnih svojstava i metoda.
Svojstva objekta
Svaki objekt ima svojstva. Svojstva možete zamisliti kao atribute koji opisuju objekt. Svojstva objekta određuju kako izgleda, kako se ponaša, pa čak i je li vidljiv. Koristeći VBA, možete učiniti dvije stvari sa svojstvima objekta:
Na primjer, jednoćelijski objekt Range ima svojstvo pod nazivom Vrijednost. Svojstvo Value pohranjuje vrijednost sadržanu u ćeliji. Možete napisati VBA kod za prikaz svojstva Value ili možete napisati VBA kod za postavljanje svojstva Value na određenu vrijednost. Sljedeća makronaredba koristi ugrađenu VBA funkciju MsgBox za dovođenje okvira koji prikazuje vrijednost u ćeliji A1 na Sheet1 aktivne radne knjige:
Ovaj okvir s porukom prikazuje svojstvo Value objekta Range.
Sub ShowValue()
Sadržaj = Radni listovi(“List1”).Raspon(“A1”).Vrijednost
Sadržaj MsgBoxa
Kraj Sub
Inače, MsgBox je vrlo korisna funkcija. Možete ga koristiti za prikaz rezultata dok Excel izvršava vaš VBA kod.
Kôd u prethodnom primjeru prikazuje trenutnu postavku svojstva Value ćelije. Što ako želite promijeniti postavku za to svojstvo? Sljedeća makronaredba mijenja vrijednost u ćeliji A1 promjenom svojstva Value ćelije:
Podvrijednost promjene()
Radni listovi(“Sheet1”).Raspon(“A1”).Vrijednost = 994,92
Kraj Sub
Nakon što Excel izvrši ovaj postupak, ćelija A1 na Listu1 aktivne radne knjige sadrži vrijednost 994,92. Ako aktivna radna knjiga nema list pod nazivom Sheet1, rezultat izvršavanja te makronaredbe je poruka o pogrešci. VBA samo slijedi upute i ne može raditi s listom koji ne postoji.
Svaki objekt ima svoj skup svojstava, iako su neka svojstva zajednička mnogim objektima. Na primjer, mnogi (ali ne svi) objekti imaju svojstvo Visible. Većina objekata također ima svojstvo Name.
Neka svojstva objekta su svojstva samo za čitanje, što znači da vaš kod može dobiti vrijednost svojstva, ali je ne može promijeniti.
Zbirka je također objekt. To znači da zbirka također ima svojstva. Na primjer, možete odrediti koliko je radnih knjiga otvoreno pristupom svojstvu Count zbirke Radne knjige. Sljedeća VBA procedura prikazuje okvir s porukom koji vam govori koliko je radnih knjiga otvoreno:
Podbrojevi ()
MsgBox Workbooks.Count
Kraj Sub
Objektne metode
Osim svojstava, objekti imaju metode. Metoda je akcija koju izvode s objektom. Metoda može promijeniti svojstva objekta ili natjerati objekt da učini nešto.
Ovaj jednostavan primjer koristi metodu ClearContents na objektu Range za brisanje sadržaja 12 ćelija na aktivnom listu:
Sub ClearRange()
Raspon(“A1:A12”).ClearContents
Kraj Sub
Neke metode uzimaju jedan ili više argumenata. Argument je vrijednost koja dalje određuje radnju izvesti. Argumente za metodu postavljate nakon metode, odvojene razmakom. Više argumenata odvojeno je zarezom.
Sljedeći primjer aktivira Sheet1 (u aktivnoj radnoj knjizi), a zatim kopira sadržaj ćelije A1 u ćeliju B1 korištenjem metode Copy objekta Range. U ovom primjeru, metoda Copy ima jedan argument, koji je odredišni raspon za operaciju kopiranja:
Sub CopyOne()
Radni listovi(“Sheet1”).Aktivirajte
Raspon(“A1”). Raspon kopiranja(“B1”)
Kraj Sub
Primijetite da je referenca radnog lista izostavljena kada su objekti Range bili referencirani. To se može učiniti sigurno jer je korištena izjava za aktivaciju Sheet1. (koristeći metodu Aktiviraj).
Drugi način specificiranja argumenta za metodu je korištenje službenog naziva argumenta nakon kojeg slijedi dvotočka i znak jednakosti. Korištenje imenovanih argumenata nije obavezno, ali to često može olakšati razumijevanje vašeg koda. Druga izjava u proceduri CopyOne mogla bi se napisati ovako:
Raspon(“A1”).Odredište kopiranja:=Raspon(“B1”)
Primijetite mali upit dok se upisuje izjava. Taj upit pokazuje službeni naziv argumenta.
VBE prikazuje popis argumenata dok tipkate.
Budući da je zbirka također objekt, zbirke imaju metode. Sljedeća makronaredba koristi metodu Add za kolekciju Workbooks:
Pod AddAWworkbook()
Radne bilježnice.Dodaj
Kraj Sub
Kao što možete očekivati, ova izjava stvara novu radnu knjigu. Drugim riječima, dodaje novu radnu knjigu u zbirku Radne knjige. Nakon što izvršite ovu makronaredbu, nova radna knjiga bit će aktivna radna knjiga.
Objektni događaji
Postoji još jedna tema o kojoj trebate znati: događaji. Objekti reagiraju na razne događaje koji se događaju. Na primjer, kada radite u Excelu i aktivirate drugu radnu knjigu, događa se događaj Aktivacija radne knjige. Mogli biste, na primjer, imati VBA makronaredbu koja je dizajnirana da se izvrši svaki put kada se dogodi događaj Activate za određeni objekt radne knjige.
Excel podržava mnoge događaje, ali ne mogu svi objekti odgovoriti na sve događaje. A neki objekti ne reagiraju ni na kakve događaje. Jedini događaji koje možete koristiti su oni koji su omogućili programeri Microsoft Excela.