Nors svarbu žinoti, kaip nurodyti objektus, negalite atlikti jokio naudingo Excel VBA programavimo tiesiog nurodydami objektą. Norėdami nuveikti ką nors prasmingo, turite atlikti vieną iš dviejų dalykų:
Turėdami pažodžiui tūkstančius galimų savybių ir metodų, galite būti lengvai priblokšti. Tiesiog atminkite, kad jums niekada nereikės naudoti daugumos galimų savybių ir metodų.
Objekto savybės
Kiekvienas objektas turi savybių. Galite galvoti apie savybes kaip atributus, apibūdinančius objektą. Objekto savybės lemia, kaip jis atrodo, kaip jis elgiasi ir net ar jis matomas. Naudodami VBA galite atlikti du dalykus su objekto savybėmis:
Pavyzdžiui, vieno langelio diapazono objektas turi savybę, vadinamą Vertė. Ypatybė Value saugo langelyje esančią vertę. Galite parašyti VBA kodą, kad būtų rodoma vertė ypatybė, arba galite parašyti VBA kodą, kad nustatytumėte ypatybę Reikšmė į konkrečią reikšmę. Šioje makrokomandoje naudojama VBA integruota MsgBox funkcija, kad būtų parodytas laukas, kuriame rodoma reikšmė aktyvios darbaknygės 1 lapo A1 langelyje:
Šiame pranešimų laukelyje rodoma diapazono objekto vertė.
Sub ShowValue()
Turinys = Darbalapiai ("Sheet1"). Diapazonas ("A1"). Vertė
MsgBox turinys
Pabaigos sub
Beje, MsgBox yra labai naudinga funkcija. Galite naudoti jį rezultatams rodyti, kai „Excel“ vykdo jūsų VBA kodą.
Ankstesniame pavyzdyje pateiktas kodas rodo dabartinį langelio vertės ypatybės nustatymą. Ką daryti, jei norite pakeisti šios nuosavybės nustatymą? Ši makrokomanda pakeičia reikšmę langelyje A1, pakeisdama langelio ypatybę Vertė:
Sub ChangeValue()
Darbalapiai („Sheet1“). Diapazonas („A1“). Vertė = 994,92
Pabaigos sub
„Excel“ įvykdžius šią procedūrą, aktyvios darbaknygės 1 lapo langelyje A1 yra reikšmė 994,92. Jei aktyvioje darbaknygėje nėra lapo, pavadinto Lapas1, tos makrokomandos vykdymo rezultatas yra klaidos pranešimas. VBA tiesiog vykdo instrukcijas ir negali veikti su neegzistuojančiu lapu.
Kiekvienas objektas turi savo savybių rinkinį, nors kai kurios savybės būdingos daugeliui objektų. Pavyzdžiui, daugelis (bet ne visi) objektų turi savybę Visible. Daugelis objektų taip pat turi savybę Name.
Kai kurios objekto savybės yra tik skaitomos, o tai reiškia, kad jūsų kodas gali gauti nuosavybės vertę, bet negali jos pakeisti.
Kolekcija taip pat yra objektas. Tai reiškia, kad kolekcija taip pat turi savybių. Pavyzdžiui, galite nustatyti, kiek darbaknygių atidaryta, pasiekę kolekcijos Darbaknygius ypatybę Skaičiuoti. Vykdant šią VBA procedūrą rodomas pranešimų langas, nurodantis, kiek darbaknygių atidaryta:
Sub CountBooks ()
MsgBox Workbooks.Count
Pabaigos sub
Objektiniai metodai
Be savybių, objektai turi metodus. Metodas yra veiksmas, kurį atlikti su objektu. Metodas gali pakeisti objekto savybes arba priversti objektą ką nors padaryti.
Šiame paprastame pavyzdyje naudojamas „ClearContents“ metodas diapazono objekte, kad ištrintų 12 aktyvaus lapo langelių turinį:
Sub ClearRange()
Diapazonas („A1:A12“).Aiškus turinys
Pabaigos sub
Kai kurie metodai turi vieną ar daugiau argumentų. Argumentas yra vertė, kuri detalizuoja veiksmų atlikti. Metodo argumentus pateikiate po metodo, atskirdami juos tarpu. Keli argumentai atskiriami kableliais.
Šis pavyzdys suaktyvina lapą 1 (aktyvioje darbaknygėje) ir nukopijuoja langelio A1 turinį į langelį B1, naudojant diapazono objekto kopijavimo metodą. Šiame pavyzdyje kopijavimo metodas turi vieną argumentą, kuris yra kopijavimo operacijos paskirties diapazonas:
Sub CopyOne ()
Darbalapiai („Sheet1“). Suaktyvinkite
Diapazonas („A1“). Kopijuoti diapazoną („B1“)
Pabaigos sub
Atkreipkite dėmesį, kad darbalapio nuoroda buvo praleista, kai buvo nurodyti diapazono objektai. Tai galima padaryti saugiai, nes buvo naudojamas 1 lapo aktyvinimo sakinys. (naudojant aktyvinimo metodą).
Kitas būdas nurodyti metodo argumentą yra naudoti oficialų argumento pavadinimą, po kurio rašomas dvitaškis ir lygybės ženklas. Vardinių argumentų naudojimas yra neprivalomas, tačiau tai dažnai gali palengvinti kodo supratimą. Antrasis „CopyOne“ procedūros teiginys gali būti parašytas taip:
Diapazonas ("A1"). Kopijuoti paskirties vietą: = Diapazonas ("B1")
Rašant teiginį, atkreipkite dėmesį į nedidelį raginimą. Šis raginimas rodo oficialų argumento pavadinimą.
VBE rodo argumentų sąrašą, kai rašote.
Kadangi kolekcija taip pat yra objektas, kolekcijos turi metodus. Šioje makrokomandoje naudojamas darbaknygių rinkinio įtraukimo metodas:
Sub AddAWorkbook()
Darbo knygos.Pridėti
Pabaigos sub
Kaip ir galima tikėtis, šis teiginys sukuria naują darbaknygę. Kitaip tariant, ji prideda naują darbaknygę prie darbaknygės rinkinio. Kai atliksite šią makrokomandą, nauja darbaknygė bus aktyvi darbaknygė.
Objektiniai įvykiai
Yra dar viena tema, kurią reikia žinoti: įvykiai. Objektai reaguoja į įvairius įvykius . Pavyzdžiui, kai dirbate „Excel“ ir suaktyvinate kitą darbaknygę, įvyksta darbaknygės aktyvinimo įvykis. Pavyzdžiui, galite turėti VBA makrokomandą, kuri yra sukurta vykdyti kiekvieną kartą, kai įvyksta konkretaus darbaknygės objekto aktyvinimo įvykis.
„Excel“ palaiko daugybę įvykių, tačiau ne visi objektai gali reaguoti į visus įvykius. Ir kai kurie objektai nereaguoja į jokius įvykius. Vieninteliai įvykiai, kuriuos galite naudoti, yra tie, kuriuos pateikia „Microsoft Excel“ programuotojai.