Excel VBA klassmodul
VBA Class tillåter oss att skapa vår egen objektfunktion där vi kan lägga till alla typer av funktioner, detaljer om kommandoraden, typ av funktion. När vi skapar klass i VBA fungerar de som en helt oberoende objektfunktion men de är alla kopplade ihop.
Detta hjälper oss att bygga applikationer som redan finns i VBA och Excel. Till exempel roterar pedalcykelhjulet. Pedaler och hjul är båda delarna av Cycle, men båda arbetar självständigt för att ge utdata som en rörlig cykel.

Hur skapar jag anpassade klass & objekt i VBA?
Låt oss överväga ett exempel på tre olika företags mobiltelefoner, som är Apple, Samsung och Nokia med tanke på de populära och nyligen lanserade mobiltelefonerna från dessa företag, som är iPhone X, Samsung S8 och Nokia 7+.
Vi kommer att jämföra några av de viktiga funktionerna för dessa mobiltelefoner, till exempel märke, modell, skärmstorlek, kameratyp och laddartyp. Dessa är i grunden viktiga funktioner på den grunden. Vi jämför mest alla mobiltelefoner. Nedan har vi kartlagt de ovan diskuterade parametrarna i ett diagram.

I VBA-fönstret från menyn Infoga väljer du klassmodulen, som visas nedan.

Vi får fönstret Klassmodul med början med Option Explicit, som visas nedan.

Option Explicit säkerställer att variabler måste deklareras innan de används. Om vi inte deklarerar någon variabel och använder den, kommer systemet att kasta ett fel. Nu i klass, definiera alla diskuterade parametrar för mätning av mobiltelefoner med allmänheten . Detta kommer att göra de definierade parametrarna öppna för användning när som helst, var som helst, utan några begränsningar.
Koda:
Alternativ Explicit '' Lista över fastigheter Offentligt varumärke som sträng Offentlig modell som sträng Offentlig skärm Storlek som sträng Offentlig kamera Typ som sträng Offentlig laddare Typ som sträng

Nu kommer vi att lägga till en annan process för drift, funktioner och funktioner för en mobiltelefon, som att starta en telefon, stänga av telefonen, spela musik, ladda batteriet etc. med underkategori för varje funktion som visas nedan. Och lägg till en meddelanderuta i varje underkategorislinga så att vi kan se vilka metoder som för närvarande körs.
Koda:
"Möjliga tekniker Sub MobileStarts () MsgBox" Mobile är påslagen "End Sub
Sub MobileOff () MsgBox "Mobile är avstängning" End Sub
Sub PlayMusic () MsgBox "Ljudsystem fungerar för närvarande" End Sub
Sub BatteryCharge () MsgBox "Laddaren är för närvarande inkopplad" End Sub

Detta slutför skapandet av klass. Innan vi går vidare rekommenderas att ändra namnet på klassmodulen. Välj valfritt namn enligt dina krav när vi ändrar det till mobil .

Nu ska vi skriva en kod i en modul där vi kommer att se och jämföra funktionerna och funktionerna för varje mobiltelefonmärke. För detta måste vi lägga till en modul genom att gå dit under menyn Infoga som visad meny.

Vi får en ny modul öppnad med Option Explicit aktiverad i detta när vi arbetar och skapar en klass. Börja nu skriva underkategori i namnet på utförda funktioner som visas nedan.

Vi kan ändra namnet på modulen så som vi gjorde för klass. Detta hjälper oss att behålla den samrelaterade identiteten för den skapade VBA-koden. Detta kan göras från fastighetsfönster, som visas nedan.

Vi har redan definierat olika funktioner, funktioner och metoder för alla mobiltelefoner. Låt oss nu definiera 3 variabler i vilket namn som helst (helst i namnet på mobiltelefonmärket) och tilldela det till Mobile. Låt oss börja med iPhone först, som visas nedan.

Gör samma sak för resten av mobiltelefonmärket, som visas nedan.

Genom detta tilldelar vi den skapade klassen till varje dimensionsvariabel av mobilmärket. Nu för varje märke, gör samma process för att tilldela klassen .
Nu måste vi tilldela alla funktioner i mobiltelefonen och dess värde. För detta använder du Set- funktionen och tilldelar den till en ny mobil, som visas nedan.

Öppna nu With-End-loop för iPhone. Det är här vi kommer att definiera varje attribut för mobilen.

Som vi kan se har vi tilldelat alla definierade funktioner i iPhone-märket från Class med specifika värden som String.
Gör samma sak för Samsung och Nokia-märket också.

Nu kommer vi att använda DebugPrint för att skriva ut informationen i det omedelbara fönstret. Det är användbart där vi vill se en viss variabel i en kodrad. Vi väljer olika funktioner för varje mobilmärke, som visas nedan.

Nu tilldela MobileStarts och MobileOff funktionella operationer, som vi definierat i klass till var och en av de mobila varumärken i samma modul tillsammans med meddelanderutan. Du kan hoppa över meddelandefältet här.

Detta slutför tilldelningen av klass till modul. Kompilera nu koden och kör med F5-tangenten. Vi kommer att se meddelandet från varje mobilmärke, som visas nedan.

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.
- För testning kan du använda mindre tekniker eller funktioner för att skapa Class. Detta kan ändras senare när vi vill lägga till fler produktfunktioner och tekniker.
- Överväg alltid liknande eller samma funktioner när vi avslutar klass och tilldelar den till en modul. Detta hjälper oss att jämföra egenskaperna hos olika produkter.