VBA -klassemoduler og hvordan man bruger dem

Anonim

Hvad er en klasse i VBA?

En klasse er en blueprint for et objekt, der skal oprettes. En klasse selv gør ikke andet end ved hjælp af klasser kan du oprette flere identiske objekter, der kan udføre operationer eller kan bruges som en dataressource.

I virkeligheden er modellen (design og funktionaliteter) af en bil en klasse, og selve bilen er et objekt i denne klasse. I klassen definerer vi, hvad bilen har i den, og hvad den kan. For eksempel har en bil 4 hjul, 5 gear, rat osv. Disse er attributter/egenskaber. Vi definerer også, hvad en bil kan, som at bevæge sig fremad, baglæns, dreje osv. Disse er funktioner i bilklassen. Et bilobjekt, der er oprettet ved hjælp af bilklasse, vil have alle disse egenskaber. Hvis du definerer en bil, der har 5 hjul, end en bil, der er oprettet ved hjælp af denne klasse, vil have 5 hjul. Du forstår pointen.

Nok med teori, lad os nu se, hvordan du kan bruge et klassemodul i VBA.

Brug af Excel VBA -klasse modul

Mens du arbejder i VBA, skal du have brugt Range ("A1"). Vælg. Intervallet er foruddefineret klasse i VBA. Select er en af ​​funktionerne i Range -klassen, der vælger det angivne område. Tilsvarende er Debug klasse i VBA, og print og påstå er dens metoder. Regneark, arbejdsbøger, rækkevidde osv. Alle er VBA -klasser, som vi bruger i vores subs.

Opret din egen klasse

Først skal vi tilføje et klassemodul i VBA

Tryk på ALT+F11 tastekombination for at åbne Excel VBA -editor.

    • Højreklik på project explorer. Flyt markøren til Indsæt-> Klassemodul. Klik på den. Det samme kan gøres fra menuen Indsæt.

    • Klassen tilføjes til mappen "Klassemodul". Standardnavnet er som klasse1, klasse2 og så videre. Du kan ændre klassens navn fra egenskabsvinduet. Lad os kalde vores klasse "Velkommen".

  • Lad os nu skabe tilføje nogle attributter til vores klasse. Da jeg ønsker, at disse attributter skal være tilgængelige for offentligheden, har jeg brugt tilgængelighed operatør offentlig.
    Offentligt navn Som streng Offentlig var1 Som heltal Offentlig var2 Som heltal 
  • Lad os nu tilføje en funktion til denne klasse. Jeg vil have en funktion, der siger Hej! til brugeren. For at gøre det skal du tilføje en sub og navngive den sayHiTo.
    Sub sayHiTo (bruger som streng) navn = bruger MsgBox ("Hej!" Og navn) Afslut sub 
  • Lad os nu bruge klassen i et modul. Indsæt et nyt modul, hvis du ikke har nogen. Skriv en sub. Jeg har navngivet min undertest.
    Deltest () Dim wc som ny velkomst 'Deklareret og initialiseret velkomstobjekt wc.sayHiTo ("Jack")' brugte sayHiTo metode til velkomstobjekt. Afslut Sub 
  • Kør denne undertest ved hjælp af F5 -tasten. Det vil bede "Hej! Jack" på Excel -projektmappe.

Hvordan virker det?

I undertest har vi skabt et objekt "wc" af Velkommen klasse. Et objekt oprettes i VBA på to metoder. vi kører koden, Test sub opretter et objekt wc i velkomstklassen. Dette objekt har alle egenskaberne i velkomstklassen. Vi bruger sayHiTo -metoden i velkomstklassen til at sige hej til brugeren.

Oprettelse af objekter i Excel VBA

    1. Øjeblikkelig oprettelse

I øjeblikkelig oprettelse opretter vi et objekt, mens vi erklærer objektet med den "nye" nøgle. I vores eksempel ovenfor har vi brugt øjeblikkelig oprettelse.

Dim wc Som ny velkomst

2. Forsinket oprettelse
Ved forsinket oprettelse erklærer vi først kun objektet. Vi bruger ikke det "nye" søgeord. For at kunne bruge objektet skal vi initialisere det med det "nye" søgeord.

Deltest () Dim wc Som Welcome 'wc.sayHiTo ("Jack")' genererer fejl, da wc endnu ikke er initialiseret 'initialiseringsobjekt Set wc = New Welcome wc.sayHiTo ("Cory")' dette fungerer. Afslut Sub 

Adgang til variabler i en klasse

I ovenstående eksempler har vi brugt offentlige variabler til klassen, men det er forkert at øve. Vi bør undgå at bruge offentlige variabler i en klasse. Nu er spørgsmålet, hvordan ville vi få adgang til variabler i klassen. Tidligere har vi brugt underrutine til at få adgang til navn, men VBA -klasser giver egenskaber, der bruges til systematisk at opdatere og hente private variabelværdier i klassen. Ejendommene er mere elegante end sub eller funktion til opdatering og adgang til private variabler. Lad os se hvordan.

Syntaks for klassens ejendom

Privat navn Som streng Privat var1 Som heltal Privat var2 Som heltal Ejendom Let Mitnavn (nm som streng) navn = nm Slutegenskab Ejendom Get Mitnavn () Som streng Mit navn = navn Slut ejendom 

Lad os bruge dem i et modul.

Deltest () 'opretter klasseobjekt Dim wc som ny velkomst Dim wc1 som ny velkomst' ved hjælp af egenskaber wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub 

Når du kører denne testundersøgelse, får du udskrevet to navne for to objekter i klassen "Velkommen".

Hvordan egenskaber er forskellige fra sub og funktioner

Bemærk i eksemplet ovenfor, at vi har brugt egenskaben MyName som en variabel. Vi initialiserede værdien af ​​variablen "Navn" bare ved at skrive wc.MyName = "assdf". Denne kommandolinje kaldet ejendommen kaldetEjendom Få mit navn () som streng. Vi passerede ikke nogen værdi i parentes, som vi gjorde i begyndelsen.

Tilsvarende brugte vi kommando for at udskrive værdierne for "Navn" -variablenDebug.Print wc.MyName. Er det ikke så simpelt som normal variabelinitialisering? Den eneste forskel er, at du kan gøre en masse iejendom segment. Du sætter datavalidering, beregning, kommunikation osv., Og brugeren vil kun se resultatet.

En anden forskel er, at vi kan bruge samme navn på ejendommen til lade og en del. Dette gør det lettere og mindre forvirrende.

Så ja fyre, dette var et simpelt eksempel på et klassemodul i Excel VBA. Dette er kun toppen af ​​isbjerget, der er en masse saft i dette emne, som vi vil undersøge i senere artikler. Vi vil udforske dem hver for sig på den nemmeste måde. Jeg håber, jeg var forklarende nok til at få dig til at forstå dette. Hvis du er i tvivl om dette emne eller et andet Excel VBA -emne, skal du nævne det i kommentarfeltet herunder.

Importer et modul fra en fil ved hjælp af VBA i Microsoft Excel | Lær, hvordan du importerer hele modulet fra en anden fil ved hjælp af VBA.

Opret et nyt modul ved hjælp af VBA i Microsoft Excel | Du kan bruge et modul til at oprette en anden model i VBA. Dette kan hjælpe dig med at minimere det ekstra overheadarbejde.

Føj en procedure til et modul ved hjælp af VBA i Microsoft Excel | Brug denne VBA -kode til automatisk at tilføje procedurer til moduler.

Populære artikler:

50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje får dig til at arbejde endnu hurtigere i Excel.

VLOOKUP -funktionen i Excel | Dette er en af ​​de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.

COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.

Sådan bruges SUMIF -funktion i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.