Kaip sukurti ir naudoti VBA klasės modulius? (Pavyzdžiai)

„Excel VBA“ klasės moduliai

Kai naudojame VBA, mes naudojame VBA apibrėžtas ypatybes ir atributus, bet kas atsitinka, kai norime sukurti savo ypatybes ir metodus bei atributus, tai yra, kai VBA naudojame klasės modulį, kad galėtume jį apibrėžti vartotojo, klasės modulis turi savo kodų rinkinį, kurį vartotojas nustato funkcijoms, ypatybėms ir objektams.

Klasės moduliai naudojami kuriant objektą. Kai sakome objektus, nors tai yra kintamasis, tai yra mažos programos. Rašydami kodą mes paprastai rašome moduliais. Pagrindiniai moduliai yra tai, kur mes rašome savo kodus darbui atlikti. Mes taip pat naudojame vartotojo formą kurdami grafines vartotojo sąsajas.

Bet jei pažvelgsite į aukščiau esantį vaizdą, galite pamatyti „Klasės modulį“. Tikrai žinau, kad to neprisiliejai, kol neskaitai šio įrašo. Jums gali būti įdomu, kas yra šis VBA klasės modulis, kai visą darbą galima atlikti naudojant patį mūsų įprastą modulį.

Kas yra klasės modulis?

„Class Modules“ leidžia vartotojui susikurti savo objektą taip, kaip mes įmontuojame objektus įprastuose moduliuose, tokiuose kaip „darbalapiai“, „darbaknygės“, „diapazonas“ ir pan.

Panašiai naudodami klasės modulį galime sukurti pasirinktinius objektus.

Klasė turi tiesioginį ryšį su daiktais. Pavyzdžiui, jūs turite mašinos schemą, kad sukurtumėte mašiną, tačiau atminkite, kad ji dar nėra mašina, ir naudodami šią mašinos schemą galime sukurti daugybę tokių mašinų.

Pvz., Jei norite išvardyti įvairius mašinų ženklus, kad išvardytumėte įvairių modelių charakteristikas.

Mašinoje turime prekės ženklą, serijos numerį, mašinos galią, mašinos spalvą, joje dalyvaujančių variklių skaičių, variklio degalų tipą ir kt. ... Technine kalba tai vadinama „savybėmis“.

Atsižvelgdami į mašinos savybes, galime paleisti, išjungti, padidinti variklio greitį, pristabdyti ir pan ... Ir tai vadinama „Metodais“.

Pavyzdys

Šį VBA klasės šabloną galite atsisiųsti čia - VBA klasės šablonas

Pradėkime rutulį, nes visada nuobodu perskaityti teorinę dalį. Norėdami įterpti klasės modulį, eikite į „Visual Basic“ redaktoriaus parinktį.

Dabar galime pamatyti klasės modulį, kaip nurodyta toliau.

Tai atrodo panašu į tą, kurį turime aukščiau kaip įprastą modulį. Ypatybių lange pakeiskite klasės modulio pavadinimą. Norėdami pamatyti ypatybių langą, paspauskite klavišą F4 .

Dabar deklaruokite kintamąjį kaip eilutę.

Nekurdami subprocedūros „vba“, turime deklaruoti kintamąjį ir šį kartą naudoti žodį „Public“, o ne „Dim“.

Dabar mes galime pasiekti šį kintamąjį bet kuriame modulyje ir klasės modulyje.

Dabar eikite į įprastą modulį ir pavadinkite kintamąjį.

Deklaravę kintamąjį, turime priskirti duomenų tipą VBA, užuot priskyrę duomenų tipą, galime tiesiog nurodyti klasės modulio pavadinimą, ty CM

Dabar naudodami kintamąjį „k“ galime pasiekti viešąjį kintamąjį, kurį apibrėžėme klasės modulyje, ty „Mano vertė“.

Kaip matome aukščiau esančiame paveikslėlyje, tai rodo kintamojo pavadinimo galimybę iš klasės modulio, kad priskirtumėte jam vertę.

Dabar VBA pranešimų laukelyje parodykite priskirtojo kintamojo vertę.

Kodas:

 Sub Class_Example () Dim k As New CM k.MyValue = "Sveiki" MsgBox k.MyValue End Sub 

Paleiskite šį kodą naudodami F5 klavišą arba rankiniu būdu, kad būtų parodytas rezultatas.

Klasės modulis vs objektai

Pradiniame klasės modulio etape visi susipainioja su tuo, kas yra klasė ir kas yra objektas.

Norėdami tai suprasti, prisiminkite mūsų ankstesnį mašinos diagramos pavyzdį. Pirmas dalykas, kurį turime pagaminti mašiną, yra tai, kad pirmiausia turime suprojektuoti mašiną, tada kelias kopijas galima pakartoti tuo dizainu.

Dabar susiekite tai su mūsų klasės moduliu.

  • Čia klasės modulis yra dizainas. O objektas yra dizaino sukurta kopija .
  • Dar vienas įdomus dalykas yra tai, kad kurdami objektą iš klasės modulio turime naudoti žodį „naujas“.

Žemiau pateikiamas to paties pavyzdys.

Dar vienas dalykas, kai naudojame įmontuotus objektus, tokius kaip darbalapiai, darbaknygės ir diapazono objektai, nenaudojame žodžio „naujas“

Norėdami pradėti procesą naudodami klasės modulį, turėtumėte žinoti šiuos pagrindinius dalykus. Ateinančiuose straipsniuose pamatysime kito lygio pavyzdžius.

Atrodo, sunku tai suprasti, kuo daugiau laiko praleisite su klasės moduliu, prie jo priprasite.


$config[zx-auto] not found$config[zx-overlay] not found