Vad är en klass i VBA?
En klass är en ritning för ett objekt som ska skapas. En klass i sig gör inget annat än genom att använda klasser kan du skapa flera identiska objekt som kan utföra operationer eller kan användas som en dataresurs.
I verkliga livet är modellen (design och funktioner) av en bil en klass och bilen i sig är ett objekt i den klassen. I klassen definierar vi vad bilen har i den och vad den kan göra. Till exempel har en bil 4 hjul, 5 växlar, ratt etc. Dessa är attribut/egenskaper. Vi definierar också vad en bil kan göra, som att gå framåt, bakåt, svänga etc. Dessa är funktioner i bilklassen. Ett bilobjekt skapat med bilklass kommer att ha alla dessa egenskaper. Om du definierar en bil som har 5 hjul än en bil som skapats med denna klass kommer att ha 5 hjul. Du förstår poängen.
Nog med teori, låt oss nu se hur du kan använda en klassmodul i VBA.
Använda Excel VBA -klassmodul
När du arbetar i VBA måste du ha använt intervall ("A1"). Välj. Intervallet är fördefinierad klass i VBA. Select är en av funktionerna i Range -klassen som väljer det angivna intervallet. På samma sätt är Debug klass i VBA och utskrift och påstående är dess metoder. Arbetsblad, arbetsböcker, intervall, etc. är alla VBA -klasser som vi använder i våra subs.
Skapa din egen klass
Först måste vi lägga till en klassmodul i VBA
Tryck på ALT+F11 -tangentkombinationen för att öppna Excel VBA -redigeraren.
-
- Högerklicka på projektutforskaren. Flytta markören till Infoga-> Klassmodul. Klicka på det. Samma sak kan göras från menyn Infoga.
-
- Klassen läggs till i mappen "Klassmodul". Standardnamnet är som klass 1, klass 2 och så vidare. Du kan ändra klassnamnet från fastighetsfönstret. Låt oss kalla vår klass "Välkommen".
- Låt oss nu lägga till några attribut till vår klass. Eftersom jag vill att dessa attribut ska vara tillgängliga för allmänheten har jag användning tillgänglighetsoperatör offentlig.
Offentligt namn As String Public var1 As Integer Public var2 As Integer
- Låt oss nu lägga till en funktion till den här klassen. Jag vill ha en funktion som säger Hej! till användaren. Lägg till en sub och ge den namnet sayHiTo.
Sub sayHiTo (användare som sträng) namn = användare MsgBox ("Hej!" Och namn) Avsluta sub
- Låt oss nu använda klass i en modul. Sätt i en ny modul om du inte har någon. Skriv en del. Jag har döpt till mitt undersökningstest.
Deltest () Dim wc As New Welcome 'Deklarerat och initialiserat välkomstobjekt wc.sayHiTo ("Jack")' använde sayHiTo -metod för välkomstobjekt. Avsluta Sub
- Kör detta undertest med F5 -tangenten. Det kommer att fråga "Hej! Jack" på Excel -arbetsbok.
Hur fungerar det?
I undersökning har vi skapat ett objekt "wc" av Välkommen klass. Ett objekt skapas i VBA på två sätt. vi kör koden, Test sub skapar ett objekt wc i välkomstklassen. Detta objekt har alla egenskaper i välkomstklassen. Vi använder metoden sayHiTo i välkomstklassen för att säga hej till användaren.
Skapa objekt i Excel VBA
-
- Direkt skapande
Vid omedelbar skapelse skapar vi ett objekt medan vi deklarerar objektet med den "nya" nyckeln. I vårt exempel ovan har vi använt omedelbar skapelse.
Dim wc Som ny välkommen
2. Försenad skapelse
Vid försenad skapelse deklarerar vi först endast objektet. Vi använder inte det "nya" sökordet. För att kunna använda objektet måste vi initialisera det med det "nya" sökordet.
Deltest () Dim wc Som välkomst 'wc.sayHiTo ("Jack")' genererar fel eftersom wc inte har initialiserats ännu 'initialiseringsobjekt Set wc = New Welcome wc.sayHiTo ("Cory")' detta kommer att fungera. Avsluta Sub
Få tillgång till variabler i en klass
I exemplen ovan har vi använt offentliga variabler för klassen men det är fel att träna. Vi bör undvika att använda offentliga variabler i en klass. Nu är frågan hur skulle vi komma åt variabler i klassen. Tidigare använde vi subrutin för att komma åt namn men VBA -klasser tillhandahåller egenskaper som används för att systematiskt uppdatera och hämta privata variabelvärden för klassen. Egenskaperna är mer eleganta än sub eller funktion för uppdatering och åtkomst till privata variabler. Låt oss se hur.
Syntax för klassegendom
Privat namn Som sträng Privat var1 Som heltal Privat var2 som heltal Fastighet Låt MyName (nm As String) name = nm End Property Fastighet Get MyName () Som sträng MyName = name Slut egendom
Låt oss använda dem i en modul.
Deltest () 'skapa klassobjekt Dim wc som nytt välkomst Dim wc1 som nytt välkomst' med egenskaper wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub
När du kör denna testunderdel kommer du att skriva ut två namn för två objekt i klassen "Välkommen".
Hur egenskaper skiljer sig från sub och funktioner
Lägg märke till att vi har använt egenskapen MyName som en variabel i exemplet ovan. Vi initierade värdet på variabeln "Namn" bara genom att skriva wc.MyName = "assdf". Denna kommandorad kallas egenskapen kalladEgendom Hämta mitt namn () som sträng. Vi passerade inget värde inom parentes som vi gjorde i början.
På samma sätt använde vi kommandot för att skriva ut värdena för "Namn" -variabelnDebug.Print wc.MyName. Är det inte så enkelt som normal variabelinitialisering? Den enda skillnaden är att du kan göra mycket ifast egendom segmentet. Du sätter datavalidering, beräkning, kommunikation, etc. och användaren ser bara resultatet.
En annan skillnad är att vi kan använda samma namn på fastigheten till låta och skaffa sigdel. Detta gör det enklare och mindre förvirrande.
Så ja grabbar, det här var ett enkelt exempel på en klassmodul i Excel VBA. Detta är bara toppen av isberget, det finns mycket saft i det här ämnet som vi kommer att utforska i senare artiklar. Vi kommer att utforska var och en av dem på det enklaste sättet. Jag hoppas att jag var tillräckligt förklarande för att få dig att förstå detta. Om du har några tvivel angående detta ämne eller något annat Excel -VBA -ämne, nämn det i kommentarfältet nedan.
Importera en modul från en fil med VBA i Microsoft Excel | Lär dig hur du importerar hela modulen från en annan fil med VBA.
Skapa en ny modul med VBA i Microsoft Excel | Du kan använda en modul för att skapa en annan modell i VBA. Detta kan hjälpa dig att minimera de extra omkostnaderna.
Lägg till en procedur till en modul med VBA i Microsoft Excel | Använd denna VBA -kod för att lägga till procedurer till moduler automatiskt.
Populära artiklar:
50 Excel -genvägar för att öka din produktivitet | Bli snabbare på din uppgift. Dessa 50 genvägar får dig att arbeta ännu snabbare med Excel.
VLOOKUP -funktionen i Excel | Detta är en av de mest använda och populära Excel -funktionerna som används för att leta upp värde från olika intervall och ark.
COUNTIF i Excel 2016 | Räkna värden med förhållanden med denna fantastiska funktion. Du behöver inte filtrera dina data för att räkna specifikt värde. Countif -funktionen är avgörande för att förbereda din instrumentpanel.
Hur man använder SUMIF -funktionen i Excel | Detta är en annan viktig instrumentpanel. Detta hjälper dig att summera värden på specifika förhållanden.