Lai gan ir svarīgi zināt, kā atsaukties uz objektiem, jūs nevarat veikt nekādu noderīgu Excel VBA programmēšanu, vienkārši atsaucoties uz objektu. Lai paveiktu kaut ko nozīmīgu, jums ir jādara viena no divām darbībām:
Izmantojot burtiski tūkstošiem pieejamo īpašību un metožu, jūs varat viegli tikt satriekts. Vienkārši atcerieties, ka jums nekad nebūs jāizmanto lielākā daļa pieejamo rekvizītu un metožu.
Objekta īpašības
Katram objektam ir īpašības. Rekvizītus var uzskatīt par atribūtiem, kas raksturo objektu. Objekta īpašības nosaka, kā tas izskatās, kā tas darbojas un pat vai tas ir redzams. Izmantojot VBA, ar objekta īpašībām varat veikt divas darbības:
Piemēram, vienas šūnas diapazona objektam ir rekvizīts ar nosaukumu Value. Rekvizīts Value saglabā šūnā esošo vērtību. Varat rakstīt VBA kodu, lai parādītu rekvizītu Value, vai arī varat rakstīt VBA kodu, lai rekvizītu Value iestatītu uz noteiktu vērtību. Šis makro izmanto VBA iebūvēto MsgBox funkciju, lai atvērtu lodziņu, kas parāda vērtību aktīvās darbgrāmatas 1. lapas šūnā A1:
Šajā ziņojuma lodziņā tiek parādīts diapazona objekta rekvizīts Value.
Sub ShowValue()
Saturs = darblapas (“1. lapa”). Diapazons (“A1”). Vērtība
MsgBox saturs
Beigu apakš
Starp citu, MsgBox ir ļoti noderīga funkcija. Varat to izmantot, lai parādītu rezultātus, kamēr programma Excel izpilda jūsu VBA kodu.
Kods iepriekšējā piemērā parāda pašreizējo šūnas rekvizīta Value iestatījumu. Ko darīt, ja vēlaties mainīt šī īpašuma iestatījumu? Šis makro maina vērtību šūnā A1, mainot šūnas rekvizītu Value:
Sub ChangeValue()
Darblapas (“1. lapa”). Diapazons (“A1”). Vērtība = 994,92
Beigu apakš
Kad programma Excel ir izpildījusi šo procedūru, aktīvās darbgrāmatas 1. lapā šūnā A1 ir vērtība 994,92. Ja aktīvajā darbgrāmatā nav lapas ar nosaukumu Sheet1, šī makro izpildes rezultāts ir kļūdas ziņojums. VBA vienkārši izpilda norādījumus, un tas nevar darboties ar neeksistējošu lapu.
Katram objektam ir sava īpašību kopa, lai gan dažas īpašības ir kopīgas daudziem objektiem. Piemēram, daudziem (bet ne visiem) objektiem ir rekvizīts Visible. Lielākajai daļai objektu ir arī rekvizīts Name.
Daži objekta rekvizīti ir tikai lasāmi, kas nozīmē, ka jūsu kods var iegūt rekvizīta vērtību, bet nevar to mainīt.
Kolekcija arī ir objekts. Tas nozīmē, ka kolekcijai ir arī īpašības. Piemēram, varat noteikt, cik darbgrāmatu ir atvērtas, piekļūstot kolekcijas Darbgrāmatas rekvizītam Skaits. Šī VBA procedūra parāda ziņojuma lodziņu, kurā norādīts, cik darbgrāmatu ir atvērtas:
Sub CountBooks ()
MsgBox Workbooks.Count
Beigu apakš
Objektu metodes
Papildus īpašībām objektiem ir metodes. Metode ir darbība jums veikt ar objektu. Metode var mainīt objekta īpašības vai likt objektam kaut ko darīt.
Šajā vienkāršajā piemērā diapazona objektam tiek izmantota metode ClearContents, lai dzēstu aktīvās lapas 12 šūnu saturu:
Sub ClearRange()
Diapazons(“A1:A12”).ClearContents
Beigu apakš
Dažas metodes izmanto vienu vai vairākus argumentus. Arguments ir vērtība, kas īpaši precizē prasība veikt. Jūs novietojat metodes argumentus aiz metodes, atdalot tos ar atstarpi. Vairāki argumenti ir atdalīti ar komatu.
Tālāk sniegtajā piemērā tiek aktivizēta lapa1 (aktīvajā darbgrāmatā) un pēc tam šūnas A1 saturs tiek kopēts šūnā B1, izmantojot objekta diapazona kopēšanas metodi. Šajā piemērā metodei Kopēt ir viens arguments, kas ir kopēšanas darbības mērķa diapazons:
Sub CopyOne()
Darblapas (“1. lapa”). Aktivizēt
Diapazons (“A1”). Kopēt diapazons (“B1”)
Beigu apakš
Ņemiet vērā, ka darblapas atsauce tika izlaista, atsaucoties uz diapazona objektiem. To var izdarīt droši, jo tika izmantots paziņojums, lai aktivizētu Sheet1. (izmantojot aktivizēšanas metodi).
Vēl viens veids, kā norādīt metodes argumentu, ir izmantot argumenta oficiālo nosaukumu, kam seko kols un vienādības zīme. Nosauktu argumentu izmantošana nav obligāta, taču bieži vien tas var padarīt kodu vieglāk saprotamu. Otro paziņojumu CopyOne procedūrā varētu uzrakstīt šādi:
Diapazons (“A1”). Kopēt galamērķis:=Diapazons (“B1”)
Ievērojiet mazo uzvedni, kad tiek rakstīts paziņojums. Šī uzvedne parāda argumenta oficiālo nosaukumu.
Rakstīšanas laikā VBE parāda argumentu sarakstu.
Tā kā kolekcija ir arī objekts, kolekcijām ir metodes. Šis makro izmanto pievienošanas metodi darbgrāmatu kolekcijai:
Sub AddAWorkbook()
Darba burtnīcas.Pievienot
Beigu apakš
Kā jūs varētu gaidīt, šis paziņojums izveido jaunu darbgrāmatu. Citiem vārdiem sakot, tas darbgrāmatu kolekcijai pievieno jaunu darbgrāmatu. Pēc šī makro izpildes aktīvā darbgrāmata būs jauna darbgrāmata.
Objektu notikumi
Ir vēl viena tēma, kas jums jāzina: notikumi. Objekti reaģē uz dažādiem notikumiem, kas notiek. Piemēram, kad strādājat programmā Excel un aktivizējat citu darbgrāmatu, notiek darbgrāmatas aktivizēšanas notikums. Piemēram, jums varētu būt VBA makro, kas ir paredzēts izpildei ikreiz, kad konkrētam darbgrāmatas objektam notiek aktivizēšanas notikums.
Programma Excel atbalsta daudzus notikumus, taču ne visi objekti var reaģēt uz visiem notikumiem. Un daži objekti nereaģē uz kādiem notikumiem. Vienīgie notikumi, ko varat izmantot, ir tie, ko ir darījuši pieejamus Microsoft Excel programmētāji.