Hvordan lage og bruke VBA klassemoduler? (Eksempler)

Excel VBA klassemoduler

Når vi bruker VBA bruker vi egenskapene og attributtene som er definert i VBA, men hva skjer når vi vil lage våre egne egenskaper og metoder og attributter, det er når vi bruker en klassemodul i VBA slik at vi kan få den brukerdefinert, en klassemodulen har sitt eget sett med koder definert for funksjoner, egenskaper og objekter av brukeren.

Klassemoduler brukes til å lage et objekt. Når vi sier objekter, selv om det er en variabel, er det små programmer. Mens vi skriver koden, skriver vi vanligvis i moduler. Grunnleggende moduler er der vi skriver kodene våre for å gjøre jobben. Vi bruker også brukerskjema for å lage grafiske brukergrensesnitt.

Men hvis du ser på bildet ovenfor, kan du se "Klassemodul". Jeg vet helt sikkert at du ikke har rørt det før du leser dette innlegget. Du må lure på hva denne VBA-klassemodulen er når all jobben kan gjøres ved å bruke selve den vanlige modulen vår.

Hva er klassemodulen?

Klassemoduler lar brukeren lage sitt eget objekt akkurat som hvordan vi har innebygde objekter i vanlige moduler som “Arbeidsark”, “Arbeidsbøker”, “Rekkevidde” og så videre.

Som dette ved hjelp av en klassemodul, kan vi lage tilpassede objekter.

Klassen har et direkte forhold til objekter. For eksempel har du et maskindiagram for å bygge en maskin, men husk at det ikke er en maskin ennå, og ved hjelp av dette maskindiagrammet kan vi bygge mange maskiner som det.

For eksempel, hvis du vil liste ut forskjellige maskinmerker for å liste ut egenskapene til forskjellige modeller.

I maskinen har vi merkenavn, serienummer, maskinkraft, maskinens farge, antall motorer som er involvert i den, motorens drivstofftype osv.… På teknisk språk kalles disse “egenskaper”.

Når det gjelder maskinens egenskaper, kan vi starte, vi kan slå av, vi kan øke hastigheten på motoren, vi kan stoppe osv ... Og disse kalles “Metoder”.

Eksempel

Du kan laste ned denne VBA klassemalen her - VBA klassemalen

La oss starte ballen med å rulle fordi det alltid er kjedelig å lese opp den teoretiske delen. For å sette inn en klassemodul, gå til innsettingsalternativ i Visual Basic Editor.

Nå kan vi se en klassemodul som nedenfor.

Dette ser ut som den vi har ovenfor som en vanlig modul. Endre navnet på klassemodulen i eiendomsvinduet. For å se vinduet med egenskaper, trykk F4-tasten .

Nå erklær variabelen som en streng.

Uten å lage en underprosedyre i vba, må vi erklære variabelen og også denne gangen ved å bruke ordet "Offentlig" ikke "Dim".

Nå kan vi få tilgang til denne variabelen i hvilken som helst modul og klassemodul.

Gå nå til en vanlig modul og gi navnet til variabelen.

Etter å ha erklært variabelen må vi tilordne datatypen i VBA, i stedet for å tildele datatypen kan vi bare gi navnet på klassemodulen, dvs. CM

Nå bruker vi variabelen “k” og får tilgang til den offentlige variabelen vi har definert i klassemodulen, dvs. “Min verdi”.

Som vi kan se i bildet ovenfor, viser det muligheten for variabelnavn fra klassemodulen for å tildele verdien til den.

Vis nå verdien til den tildelte variabelen i VBA-meldingsboksen.

Kode:

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

Kjør denne koden ved hjelp av F5-tasten eller manuelt for å vise resultatet.

Klassemodul vs objekter

I den innledende fasen av klassemodulen blir alle forvirret med hva som er klasse og hva som er et objekt.

Husk vårt tidligere eksempel på et maskindiagram for å forstå dette. Det første vi trenger for å produsere en maskin er at vi trenger å designe maskinen først, og deretter kan flere kopier replikeres med det designet.

Forholdet dette nå til klassemodulen vår.

  • Her er klassemodulen et design. Og Objekt er kopien laget av Designet.
  • En annen interessant ting er at vi trenger å bruke ordet "nytt" for å lage et objekt fra klassemodulen.

Nedenfor er et eksempel på det samme.

En ting til når vi bruker innebygde objekter som regneark, arbeidsbøker og rekkeviddeobjekter, vi bruker ikke ordet "nytt"

For å starte prosessen med Class Module, bør du vite disse grunnleggende tingene. I de kommende artiklene vil vi se eksemplene på neste nivå.

Det virker vanskelig å forstå dette, jo mer tid du bruker med en klassemodul, blir du vant til det.