VBA klassi moodulid ja nende kasutamine

Anonim

Mis on VBA klass?

Klass on loodava objekti plaan. Klass ise ei tee midagi, kuid klasside abil saate luua mitu identset objekti, mis suudavad toiminguid teha või mida saab kasutada andmeallikana.

Reaalses elus on auto mudel (disain ja funktsioonid) klass ja auto ise on selle klassi objekt. Tunnis määratleme, mis autol on ja mida ta suudab. Näiteks autol on 4 ratast, 5 käiku, rool jne Need on atribuudid/omadused. Samuti määratleme, mida auto saab teha, näiteks edasi -tagasi liikumine, pööre jne. Need on autoklassi funktsioonid. Autoklassi abil loodud autoobjektil on kõik need omadused. Kui määratlete auto, millel on 5 ratast, siis selle klassi abil loodud autol on 5 ratast. Saate aru.

Aitab teooriast, nüüd vaatame, kuidas saate VBA -s klassimoodulit kasutada.

Exceli VBA klassi mooduli kasutamine

VBA -s töötades peate olema kasutanud vahemikku ("A1"). Select. Vahemik on VBA-s eelnevalt määratletud klass. Valik on üks Range klassi funktsioone, mis valivad määratud vahemiku. Samamoodi on silumine VBA klass ning selle meetodid on printimine ja kinnitamine. Töölehed, töövihikud, vahemik jne on kõik VBA klassid, mida kasutame oma alamosades.

Looge oma klass

Esiteks peame VBA -sse lisama klassimooduli

Exceli VBA redaktori avamiseks vajutage klahvikombinatsiooni ALT+F11.

    • Paremklõpsake projektiuurijal. Liigutage kursor valikule Insert-> Class moodul. Klõpsake seda. Sama saab teha menüüst Lisa.

    • Klass lisatakse kausta "Klassi moodul". Vaikenimi on nagu klass1, klass2 jne. Klassi nime saate muuta atribuutide aknast. Nimetagem oma klassi "Tere tulemast".

  • Nüüd loome, lisame oma klassi mõned atribuudid. Kuna ma tahan, et need atribuudid oleksid avalikkusele kättesaadavad, on mul sellest kasu juurdepääsetavuse operaator avalik.
    Avalik nimi kui string Avalik var1 Nagu täisarv Avalik var2 kui täisarv 
  • Nüüd lisame sellele klassile funktsiooni. Soovin funktsiooni, mis ütleb Tere! kasutajale. Selleks lisage alam ja nimetage see öeldes HiTo.
    Sub sayHiTo (kasutaja kui string) name = user MsgBox ("Tere!" & Nimi) Lõpu alamosa 
  • Nüüd kasutame moodulis klassi. Sisestage uus moodul, kui teil seda pole. Kirjutage alam. Olen oma alamkatsele nime andnud.
    Alamkatse () Dim wc uue tervitusena 'Deklareeritud ja initsialiseeritud tervitusobjekt wc.sayHiTo ("Jack")' kasutas tervitusobjekti sayHiTo meetodit. End Sub 
  • Käivitage see alamkatse, kasutades klahvi F5. See küsib Exceli töövihikus "Tere! Jack".

Kuidas see töötab?

Alamkatses oleme loonud objekti "wc" Tere tulemast klassi. VBA -s luuakse objekt kahel viisil. käivitame koodi, Test sub loob tervitusklassi objekti wc. Sellel objektil on kõik tervitusklassi omadused. Kasutame tervitusklassi meetodit sayHiTo, et kasutajale tere öelda.

Objekti loomine Excel VBA -s

    1. Kohene loomine

Kiirloomisel loome objekti, deklareerides objekti "uue" võtmega. Ülaltoodud näites oleme kasutanud vahetu loomist.

Dim wc nagu uus Tere tulemast

2. Hiline loomine
Hilinenud loomisel deklareerime esmalt ainult objekti. Me ei kasuta märksõna "uus". Objekti kasutamiseks peame selle initsialiseerima märksõnaga "uus".

Alamkatse () Dim wc nagu Welcome 'wc.sayHiTo ("Jack") tekitab tõrke, kuna wc pole veel initsialiseeritud' objekti initsialiseerimine Set wc = New Welcome wc.sayHiTo ("Cory") 'see toimib. End Sub 

Juurdepääs klassi muutujatele

Ülaltoodud näidetes oleme klassi jaoks kasutanud avalikke muutujaid, kuid harjutamine on vale. Peaksime vältima klassis avalike muutujate kasutamist. Nüüd on küsimus selles, kuidas pääseme juurde klassi muutujatele. Varem kasutasime nimele juurdepääsuks alamprogrammi, kuid VBA klassid pakuvad atribuute, mida kasutatakse klassi privaatsete muutujate väärtuste süstemaatiliseks värskendamiseks ja toomiseks. Atribuudid on privaatsete muutujate värskendamiseks ja neile juurdepääsemiseks elegantsemad kui alam- või funktsioon. Vaatame, kuidas.

Klassi omaduse süntaks

Privaatnimi kui string Privaatne var1 Nagu täisarv Privaatne var2 kui täisarv Kinnisvara Üürile anda MyName (nm kui string) name = nm End Property Kinnisvara hankimine MinuNimi () Stringina MinuNimi = nimi Lõpuväärtus 

Kasutame neid moodulis.

Alamkatse () 'klassi objekti loomine Dim wc kui uus tervitus Dim wc1 kui uus tervitus', kasutades atribuute wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub 

Kui käivitate selle testi alamosa, trükitakse kaks "Tere tulemast" klassi objekti jaoks kahte nime.

Kuidas omadused erinevad alam- ja funktsioonidest

Ülaltoodud näites pange tähele, et oleme muutujana kasutanud atribuuti MyName. Initsialiseerisime muutuja "Nimi" väärtuse lihtsalt kirjutades wc.MyName = "assdf". See käsurida nimetas omadust nimegaAtribuut Hangi minu nimi () stringina. Me ei andnud sulgudes mingit väärtust nagu alguses.

Samamoodi kasutasime muutuja "Nimi" väärtuste printimiseks käskuSilumine. Prindi wc.MyName. Kas pole see nii lihtne kui tavaline muutuja initsialiseerimine? Ainus erinevus on see, et saate teenuses palju ära tehavara segment. Panete andmete valideerimise, arvutamise, suhtlemise jne ja kasutaja näeb ainult tulemust.

Teine erinevus on see, et saame kasutada kinnisvara sama nime lase ja saadaosa. See muudab asja lihtsamaks ja vähem segadust tekitavaks.

Nii et jah, poisid, see oli lihtne näide Exceli VBA klassimoodulist. See on vaid jäämäe tipp, selles teemas on palju mahla, mida uurime hilisemates artiklites. Uurime igaüks neist ükshaaval võimalikult lihtsal viisil. Loodan, et olin piisavalt selgitav, et saaksite sellest aru. Kui teil on selle teema või mõne muu Exceli VBA teema osas kahtlusi, mainige seda allpool kommentaaride jaotises.

Mooduli importimine failist Microsoft Excelis VBA abil | Siit saate teada, kuidas importida kogu moodul teisest failist VBA abil.

Looge Microsoft Excelis VBA abil uus moodul | Mooduli abil saate luua teise mudeli VBA -s. See aitab teil minimeerida lisakulusid.

Protseduuri lisamine moodulisse, kasutades VBA -d Microsoft Excelis | Protseduuride lisamiseks moodulitele kasutage seda VBA koodi.

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.

Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.

COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea konkreetse väärtuse loendamiseks oma andmeid filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.

SUMIF -funktsiooni kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.