VBA-klasse - Hvordan lage egendefinerte klasser og objekter i VBA?

Innholdsfortegnelse

Excel VBA klassemodul

VBA Class lar oss lage vår egen Object-funksjon der vi kan legge til alle slags funksjoner, detaljer om kommandolinjen, type funksjon. Når vi lager klasse i VBA, fungerer de som en helt uavhengig objektfunksjon, men de er alle koblet sammen.

Dette hjelper oss med å bygge applikasjoner som allerede finnes i VBA og Excel. For eksempel roterer pedalsyklushjulet. Pedaler og hjul er begge delene av Cycle, men begge jobber uavhengig for å gi utdataene som en bevegelig syklus.

Hvordan lage egendefinerte klasser og objekter i VBA?

La oss se på et eksempel på 3 forskjellige selskaps mobiltelefoner, som er Apple, Samsung og Nokia med tanke på de populære og nylig lanserte mobiltelefonene til disse selskapene, som er iPhone X, Samsung S8 og Nokia 7+.

Vi vil sammenligne noen av de viktige funksjonene for disse mobiltelefonene, for eksempel merkevare, modell, skjermstørrelse, kameratype og ladetype. Dette er i utgangspunktet viktige trekk på det grunnlaget. Vi sammenligner stort sett alle mobiltelefoner. Nedenfor har vi kartlagt de ovenfor omtalte parametrene i et diagram.

I VBA-vinduet fra Sett inn- menyen velger du Klassemodulen , som vist nedenfor.

Vi får klassemodulvinduet som starter med Option Explicit, som vist nedenfor.

Option Explicit sørger for at variabler må deklareres før de brukes. Hvis vi ikke erklærer noen variabel og bruker den, vil systemet kaste en feil. Nå i klasse definerer du alle de diskuterte parametrene for måling av mobiltelefoner med publikum . Dette vil gjøre de definerte parametrene åpne for bruk når som helst, hvor som helst, uten noen begrensninger.

Kode:

Alternativ eksplisitt 'Liste over egenskaper Offentlig merkevare som streng Offentlig modell som streng Offentlig skjerm Størrelse som streng Offentlig kamera Type som streng Offentlig lader Type som streng

Nå vil vi legge til en annen prosess med betjening, funksjoner og funksjoner til en mobiltelefon, som å starte en telefon, slå av telefonen, spille av musikk, lade batteriet, etc. med underkategori for hver funksjon som vist nedenfor. Og legg til en meldingsboks i hver underkategorisløyfe, slik at vi kan se hvilke metoder som kjøres for øyeblikket.

Kode:

'Mulige teknikker Sub MobileStarts () MsgBox "Mobile slås på" End Sub
Sub MobileOff () MsgBox "Mobile slår av" End Sub
Sub PlayMusic () MsgBox "Audio system arbeider for øyeblikket" End Sub
Sub BatteryCharge () MsgBox "Laderen er for øyeblikket koblet til" End Sub

Dette fullfører opprettelsen av Class. Før vi går videre, anbefales det å endre navnet på klassemodulen. Velg et hvilket som helst navn i henhold til dine krav når vi endrer det til Mobile .

Nå skal vi skrive en kode i en modul der vi vil se og sammenligne funksjonene og funksjonene til hvert mobiltelefonmerke. For dette må vi legge til en modul ved å gå dit under Sett inn-menyen som vist meny.

Vi får en ny modul åpnet med at Option Explicit er aktivert i dette når vi jobber og lager en klasse. Begynn nå å skrive underkategori i navnet på utførte funksjoner som vist nedenfor.

Vi kan endre navnet på modulen som vi gjorde for klasse. Dette hjelper oss med å beholde den tilknyttede identiteten til den opprettede VBA-koden. Dette kan gjøres fra eiendomsvinduer, som vist nedenfor.

Vi har allerede definert forskjellige funksjoner, funksjoner og metoder for alle mobiltelefoner. La oss nå definere 3 variabler i hvilket som helst navn (helst i navnet på mobiltelefonmerket) og tildele det til Mobile. La oss starte med iPhone først, som vist nedenfor.

På samme måte gjør det samme for resten av mobiltelefonmerket, som vist nedenfor.

Ved dette tildeler vi den opprettede klassen til hver dimensjonale variabel av merket Mobile. Gjør den samme prosessen for å tildele klassen for hvert merke .

Nå må vi tilordne alle funksjonene til mobiltelefonen og dens verdi. For dette, bruk Set- funksjonen og tilordne den til en ny mobil, som vist nedenfor.

Åpne nå With-End loop for iPhone. Det er her vi vil definere hvert attributt til mobilen.

Som vi kan se, har vi tildelt alle de definerte funksjonene til iPhone-merket fra Class med spesifikke verdier som String.

Gjør det samme for Samsung og Nokia-merkevaren også.

Nå skal vi bruke DebugPrint til å skrive ut informasjonen i det umiddelbare vinduet. Det er nyttig der vi ønsker å se en bestemt variabel i en kodelinje. Vi velger forskjellige funksjoner for hvert mobilmerke, som vist nedenfor.

Nå tilordner MobileStarts og MobileOff funksjonelle operasjoner, som vi definerte i klasse til hvert av mobilmerkene i samme modul sammen med meldingsboksen. Du kan hoppe over meldingsboksen her.

Dette fullfører tildelingen av klasse til modul. Nå kompilerer du koden og kjører ved hjelp av F5-tasten. Vi vil se meldingen til hvert mobilmerke, som vist nedenfor.

Now, if you want to know what variables and functions have what kind of values in it, for that open the Local window from the view tab, which will help us getting the details when we compile the code as shown below.

The below code is for your Reference.

Code:

Sub VBA_Class() Dim iPhone As Mobile Dim Samsung As Mobile Dim Nokia As Mobile Set iPhone = New Mobile With iPhone .Brand = "iPhone" .Model = "iPhone X" .ScreenSize = "6.5 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Regular" End With Set Samsung = New Mobile With Samsung .Brand = "Samsung" .Model = "Samsung S8" .ScreenSize = "5.8 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Set Nokia = New Mobile With Nokia .Brand = "Nokia" .Model = "Nokia 7+" .ScreenSize = "6 Inches" .CameraType = "12 MegaPixel" .ChargerType = "Power" End With Debug.Print "Phone Screen Size is: " & iPhone.ScreenSize Debug.Print "Camera of Samsung is: " & Samsung.CameraType Debug.Print "Charger Type is: " & Nokia.ChargerType iPhone.MobileStarts iPhone.MobileOff MsgBox iPhone.Model Samsung.MobileStarts Samsung.MobileOff MsgBox Samsung.Model Nokia.MobileStarts Nokia.MobileOff MsgBox Nokia.Model End Sub

Pros

  • We can build our own application with a lot of features.
  • Once Class is created, we can update any feature, anytime whenever we require.
  • If we update the code, then also it won’t cause any problem in other parts of the Class.
  • We can test the individual part of the application as per our needs.

Cons

  • Initially, it takes a lot of time to create a class in VBA.
  • People who are new to VBA will find the class very difficult to apply.

Things to Remember

  • As the code can be huge and big, so it’s better to compile the code step-by-step. By doing this, we would avoid the N number of errors, which will be difficult for us to debug and resolve.
  • We can ignore the use of Message Box if you are taking and testing the above-written code.
  • For testing kan du bruke mindre teknikker eller funksjoner når du lager Class. Dette kan endres senere når vi vil legge til flere produktfunksjoner og teknikker.
  • Tenk alltid på lignende eller samme funksjoner når vi avslutter klassen og tilordner den til en modul. Dette vil hjelpe oss med å sammenligne funksjonene til forskjellige produkter.

Interessante artikler...