Hvordan oprettes og bruges VBA-klassemoduler? (Eksempler)

Excel VBA klassemoduler

Når vi bruger VBA, bruger vi de egenskaber og attributter, der er defineret i VBA, men hvad sker der, når vi vil oprette vores egne egenskaber og metoder og attributter, det er når vi bruger et klassemodul i VBA, så vi kan få det brugerdefineret, en klassemodul har sit eget sæt koder defineret for funktioner, egenskaber og objekter af brugeren.

Klassemoduler bruges til at oprette et objekt. Når vi siger objekter, selvom det er en variabel, er det små programmer. Mens vi skriver koden, skriver vi normalt i moduler. Grundlæggende moduler er hvor vi skriver vores koder for at udføre jobbet. Vi bruger også brugerformular til at oprette grafiske brugergrænseflader.

Men hvis du ser på ovenstående billede, kan du se "Klassemodul". Jeg ved med sikkerhed, at du ikke har rørt det, før du læser dette indlæg. Du må undre dig over, hvad dette VBA-klassemodul er, når alt job kan udføres ved hjælp af vores almindelige modul.

Hvad er klassemodulet?

Klassemoduler giver en bruger mulighed for at oprette sit eget objekt, ligesom hvordan vi har indbyggede objekter i almindelige moduler som “Worksheets”, “Workbooks”, “Range” osv.

Som dette ved hjælp af et klassemodul kan vi oprette brugerdefinerede objekter.

Klassen har et direkte forhold til objekter. For eksempel har du et maskindiagram til at bygge en maskine, men husk, det er ikke en maskine endnu, og ved hjælp af dette maskindiagram kan vi bygge mange maskiner sådan.

For eksempel, hvis du vil liste forskellige maskinmærker for at angive egenskaberne ved forskellige modeller.

I maskine har vi et mærke, serienummer, maskinstyrke, maskinens farve, antal involverede motorer, motorbrændstoftype osv.… På det tekniske sprog kaldes disse "egenskaber".

Med hensyn til maskinens egenskaber kan vi starte, vi kan slukke, vi kan øge motorens hastighed, vi kan sætte pause osv ... Og disse kaldes "Metoder".

Eksempel

Du kan downloade denne VBA-klasseskabelon her - VBA-klasseskabelon

Lad os starte bolden, fordi det altid er den kedelige ting at læse den teoretiske del op. For at indsætte et klassemodul, gå til indsæt indstilling i Visual Basic Editor.

Nu kan vi se et klassemodul som nedenfor.

Dette ligner det, vi har ovenfor som et almindeligt modul. Skift navnet på klassemodulet i egenskabsvinduet. For at se egenskabsvinduet skal du trykke på F4-tasten .

Erklær nu variablen som en streng.

Uden at oprette en underprocedure i vba er vi nødt til at erklære variablen og også denne gang ved hjælp af ordet "Offentlig" ikke "Dim".

Nu kan vi få adgang til denne variabel i ethvert modul og klassemodul.

Gå nu til et almindeligt modul, og navngiv variablen.

Efter at have erklæret variablen skal vi tildele datatypen i VBA, i stedet for at tildele datatypen kan vi bare give navnet på klassemodulet, dvs. CM

Nu ved hjælp af variablen “k” kan vi få adgang til den offentlige variabel, vi har defineret i klassemodulet, dvs. “Min værdi”.

Som vi kan se i ovenstående billede viser det muligheden for variabelnavn fra klassemodulet for at tildele værdien til det.

Vis nu værdien af ​​den tildelte variabel i VBA-meddelelsesfeltet.

Kode:

 Underklasseeksempel () Dim k som ny CM k.MyValue = "Hej" MsgBox k.MyValue End Sub 

Kør denne kode ved hjælp af F5-tasten eller manuelt for at vise resultatet.

Klassemodul vs objekter

I den indledende fase af klassemodulet bliver alle forvirrede med hvad der er klasse og hvad der er et objekt.

For at forstå dette, husk vores tidligere eksempel på et maskindiagram. Den første ting, vi har brug for for at fremstille en maskine, er, at vi først skal designe maskinen, og derefter kan flere kopier replikeres med det design.

Forhold dette nu med vores klassemodul.

  • Her er klassemodulet et design. Og objekt er kopien oprettet af designet.
  • En mere interessant ting er, at vi skal bruge ordet "nyt" til at oprette et objekt fra klassemodulet.

Nedenfor er et eksempel på det samme.

En ting mere, når vi bruger indbyggede objekter som regneark, projektmapper og rækkeviddeobjekter, bruger vi ikke ordet "nyt"

For at starte proceduren med klassemodulet, skal du vide disse grundlæggende ting. I de kommende artikler vil vi se eksemplerne på det næste niveau.

Det virker vanskeligt at forstå dette, jo mere tid du bruger med et klassemodul, vænner du dig til det.