Čeprav je poznavanje sklicevanja na objekte pomembno, ne morete narediti nobenega uporabnega programiranja Excel VBA s preprostim sklicevanjem na predmet. Če želite doseči nekaj pomembnega, morate narediti eno od dveh stvari:
-
Preberite ali spremenite lastnosti predmeta .
-
Določite metodo dejanja, ki bo uporabljena s predmetom.
Z dobesedno tisočimi lastnostmi in metodami, ki so na voljo, ste lahko preprosto preobremenjeni. Ne pozabite, da vam nikoli ne bo treba uporabiti večine razpoložljivih lastnosti in metod.
Lastnosti objekta
Vsak predmet ima lastnosti. Lastnosti si lahko predstavljate kot atribute, ki opisujejo predmet. Lastnosti predmeta določajo, kako izgleda, kako se obnaša in celo, ali je viden. Z uporabo VBA lahko z lastnostmi predmeta naredite dve stvari:
Na primer, enocelični objekt obsega ima lastnost, imenovano Vrednost. Lastnost Value shrani vrednost, ki jo vsebuje celica. Lahko napišete kodo VBA, da prikažete lastnost Value, ali pa napišete kodo VBA, da nastavite lastnost Value na določeno vrednost. Naslednji makro uporablja vgrajeno funkcijo VBA MsgBox, da prikaže polje, ki prikazuje vrednost v celici A1 na Sheet1 aktivnega delovnega zvezka:
V tem sporočilnem oknu je prikazana lastnost Vrednost predmeta Obseg.
Sub ShowValue()
Vsebina = Delovni listi(“List1”).Razpon(“A1”).Vrednost
Vsebina MsgBoxa
Končni sub
Mimogrede, MsgBox je zelo uporabna funkcija. Uporabite ga lahko za prikaz rezultatov, medtem ko Excel izvaja vašo kodo VBA.
Koda v prejšnjem primeru prikazuje trenutno nastavitev lastnosti Value celice. Kaj pa, če želite spremeniti nastavitev za to lastnost? Naslednji makro spremeni vrednost v celici A1 tako, da spremeni lastnost celice Value:
Sub ChangeValue()
Delovni listi(“List1”).Razpon(“A1”).Vrednost = 994,92
Končni sub
Ko Excel izvede ta postopek, celica A1 na listu1 aktivnega delovnega zvezka vsebuje vrednost 994,92. Če aktivni delovni zvezek nima lista z imenom List1, je rezultat izvajanja tega makra sporočilo o napaki. VBA samo sledi navodilom in ne more delovati z listom, ki ne obstaja.
Vsak predmet ima svoj nabor lastnosti, čeprav so nekatere lastnosti skupne mnogim predmetom. Mnogi (vendar ne vsi) predmeti imajo na primer lastnost Visible. Večina predmetov ima tudi lastnost Name.
Nekatere lastnosti objekta so lastnosti samo za branje, kar pomeni, da lahko vaša koda dobi vrednost lastnosti, vendar je ne more spremeniti.
Zbirka je tudi predmet. To pomeni, da ima zbirka tudi lastnosti. Določite lahko na primer, koliko delovnih zvezkov je odprtih z dostopom do lastnosti Count zbirke Delovni zvezki. Naslednji postopek VBA prikaže okno s sporočilom, ki vam pove, koliko delovnih zvezkov je odprtih:
Sub CountBooks()
MsgBox Workbooks.Count
Končni sub
Objektne metode
Poleg lastnosti imajo predmeti metode. Metoda je dejanje, ki ga opravlja s predmetom. Metoda lahko spremeni lastnosti predmeta ali povzroči, da objekt nekaj naredi.
Ta preprost primer uporablja metodo ClearContents na objektu Range za brisanje vsebine 12 celic na aktivnem listu:
Sub ClearRange()
Obseg(»A1:A12«).ClearContents
Končni sub
Nekatere metode sprejmejo enega ali več argumentov. Argument je vrednost, ki podrobneje določa ukrepe za izvedbo. Argumente metode postavite za metodo, ločene s presledkom. Več argumentov je ločenih z vejico.
Naslednji primer aktivira Sheet1 (v aktivnem delovnem zvezku) in nato kopira vsebino celice A1 v celico B1 z uporabo metode Copy predmeta Obseg. V tem primeru ima metoda Copy en argument, ki je ciljni obseg za operacijo kopiranja:
Sub CopyOne()
Delovni listi (»Sheet1«). Aktivirajte
Obseg (»A1«). Obseg kopiranja (»B1«)
Končni sub
Upoštevajte, da je bila sklicevanje na delovni list izpuščeno, ko so se sklicevali na objekte Obseg. To je mogoče varno narediti, ker je bil uporabljen stavek za aktiviranje Sheet1. (z uporabo metode Aktiviraj).
Drug način za določitev argumenta za metodo je uporaba uradnega imena argumenta, ki mu sledita dvopičje in znak enakosti. Uporaba poimenovanih argumentov je neobvezna, vendar lahko to pogosto olajša razumevanje vaše kode. Drugi stavek v postopku CopyOne bi lahko zapisali takole:
Obseg(“A1”). Cilj kopiranja:=Obseg(“B1”)
Bodite pozorni na majhen poziv, ko se stavek vnaša. Ta poziv prikazuje uradno ime argumenta.
VBE med tipkanjem prikaže seznam argumentov.
Ker je zbirka tudi objekt, imajo zbirke metode. Naslednji makro uporablja metodo Dodaj za zbirko delovnih zvezkov:
Pod AddAWworkbook()
Delovni zvezki.Dodaj
Končni sub
Kot lahko pričakujete, ta stavek ustvari nov delovni zvezek. Z drugimi besedami, zbirki Delovni zvezki doda nov delovni zvezek. Ko izvedete ta makro, bo nov delovni zvezek aktiven delovni zvezek.
Objektni dogodki
Obstaja še ena tema, o kateri morate vedeti: dogodki. Predmeti se odzivajo na različne dogodke, ki se zgodijo. Na primer, ko delate v Excelu in aktivirate drug delovni zvezek, pride do dogodka Aktiviranje delovnega zvezka. Lahko bi na primer imeli makro VBA, ki je zasnovan tako, da se izvede vsakič, ko pride do dogodka Activate za določen predmet delovnega zvezka.
Excel podpira številne dogodke, vendar se vsi predmeti ne morejo odzvati na vse dogodke. In nekateri predmeti se ne odzivajo na nobene dogodke. Edini dogodki, ki jih lahko uporabite, so tisti, ki so jih dali na voljo programerji Microsoft Excela.