Excel VBA-klassemodules
Wanneer we VBA gebruiken, gebruiken we de eigenschappen en attributen die zijn gedefinieerd in VBA, maar wat gebeurt er als we onze eigen eigenschappen en methoden en attributen willen maken, dat is wanneer we een klassemodule in VBA gebruiken zodat we deze door de gebruiker kunnen definiëren, een class module heeft zijn eigen set codes die door de gebruiker zijn gedefinieerd voor functies, eigenschappen en objecten.
Klasse Modules worden gebruikt om een object te maken. Als we items zeggen, ook al is het een variabele, zijn dat kleine programma's. Bij het schrijven van de code schrijven we meestal in modules. Essentiële modules zijn waar we onze principes schrijven om het werk te doen. We gebruiken ook een gebruikersformulier om grafische gebruikersinterfaces te maken.

Maar als u naar de bovenstaande afbeelding kijkt, ziet u 'Klassemodule'. Ik weet zeker dat je dat niet hebt aangeraakt totdat je dit bericht leest. U moet zich afvragen wat deze VBA-klassemodule is als al het werk kan worden gedaan door onze reguliere module zelf te gebruiken.
Wat is de klassemodule?
Met klassemodules kan een gebruiker zijn object maken, net zoals we ingebouwde items hebben in standaardmodules zoals "Werkbladen", "Werkmappen", "Bereik", enzovoort.
Op deze manier kunnen we met behulp van een klassemodule aangepaste objecten maken.
De klasse heeft een directe relatie met objecten. U hebt bijvoorbeeld een machinediagram om een machine te bouwen, maar onthoud dat het nog geen machine is en u gebruikt dit machinediagram, en we kunnen veel van die machines maken.
Als u bijvoorbeeld verschillende machinemerken wilt vermelden om de kenmerken van meerdere modellen op te sommen.
In de machine hebben we een merknaam, serienummer, machinevermogen, kleur van het apparaat, aantal motoren dat erbij betrokken is, type motorbrandstof, enz.… In technische taal worden dit "eigenschappen" genoemd.
Wat betreft de eigenschappen van de machine: we kunnen starten, we kunnen uitschakelen, we kunnen de snelheid van de motor verhogen, we kunnen pauzeren, enz. En dit worden "methoden" genoemd.
Voorbeeld
Laten we de bal aan het rollen gaan, want het is altijd saai om het theoretische gedeelte voor te lezen. Om een klassemodule in te voegen, gaat u naar de invoegoptie in een eenvoudige visuele editor.

Nu kunnen we een klassemodule zien zoals hieronder.

Dit lijkt op degene die we hierboven hebben als een gewone module. Wijzig de naam van de klassemodule in het eigenschappenvenster. Druk op F4 om het eigenschappenvenster te zien .

Declareer nu de variabele als een string.

Zonder een subprocedure in VBA te maken, moeten we de variabele declareren en het woord 'Openbaar' gebruiken, niet 'Dim'.
Nu hebben we toegang tot deze variabele in elke module en klassemodule.
Ga nu naar een gewone module en geef de variabele een naam.

Nadat we de variabele hebben gedeclareerd, moeten we het gegevenstype in VBA toewijzen; in plaats van het datatype in te stellen, kunnen we de naam van de klassemodule geven, dwz CM.

Met behulp van de variabele 'k' hebben we toegang tot de openbare variabele die we hebben gedefinieerd in de klassemodule, dat wil zeggen 'Mijn waarde'.

Zoals we in de bovenstaande afbeelding kunnen zien, toont het de optie van de variabelenaam uit de klassemodule om de waarde eraan toe te wijzen.

Toon nu de waarde van de toegewezen variabele in het VBA-berichtvenster.
Code:
Sub Class_Example () Dim k As New CM k.MyValue = "Hallo" MsgBox k.MyValue End Sub

Voer deze code uit met behulp van de F5-toets of handmatig om het resultaat weer te geven.

Klassenmodule versus objecten
In de beginfase van de klassemodule raakt iedereen in de war met wat klasse is en wat een object is.
Denk om dit te begrijpen eens terug aan ons eerdere voorbeeld van een machinediagram. Het eerste dat we nodig hebben om een machine te maken, is dat we eerst de machine moeten ontwerpen, en dan kunnen er meerdere exemplaren met dat ontwerp worden gekopieerd.
Breng dit nu in verband met onze klassemodule.
- Hier is Class Module een ontwerp. En Object is de kopie gemaakt door het ontwerp.
- Nog een interessant ding is dat we het woord "nieuw" moeten gebruiken om een object te maken vanuit de klassemodule.
Hieronder ziet u een voorbeeld van hetzelfde.

Nog een ding als we ingebouwde objecten zoals werkbladen, werkmappen en bereikobjecten gebruiken, we gebruiken het woord 'nieuw' niet.
Om de procedure met de Class Module te starten, moet u deze basiszaken weten. In de komende artikelen zullen we voorbeelden van het volgende niveau zien.
Het lijkt moeilijk om dit te begrijpen; hoe meer tijd u aan een lesmodule besteedt, u zult eraan wennen.