Ce este o clasă în VBA?
O clasă este un plan pentru un obiect care trebuie creat. O clasă în sine nu face altceva decât folosind clase puteți crea mai multe obiecte identice care pot efectua operațiuni sau pot fi utilizate ca resursă de date.
În viața reală, modelul (designul și funcționalitățile) unei mașini este o clasă, iar mașina în sine este un obiect al acelei clase. În clasă, definim ce are mașina și ce poate face. De exemplu, o mașină are 4 roți, 5 trepte, volan etc. Acestea sunt atribute / proprietăți. De asemenea, definim ce poate face o mașină, cum ar fi mersul înainte, înapoi, virajul etc. Acestea sunt funcții ale clasei de mașini. Un obiect auto creat folosind clasa auto, va avea toate aceste proprietăți. Dacă definiți o mașină care are 5 roți, o mașină creată utilizând această clasă va avea 5 roți. Ai înțeles.
Destul de teorie, acum să vedem cum puteți utiliza un modul de clasă în VBA.
Utilizarea modulului de clasă Excel VBA
În timp ce lucrați în VBA, trebuie să fi folosit Range („A1”). Gama este o clasă predefinită în VBA. Selectarea este una dintre funcțiile clasei Range care selectează intervalul specificat. În mod similar, Debug este clasa în VBA și tipărirea și afirmarea sunt metodele sale. Fișele de lucru, registrele de lucru, gama etc. sunt toate clase VBA pe care le folosim în subs.
Creați-vă propria clasă
În primul rând, trebuie să adăugăm un modul de clasă în VBA
Apăsați combinația de taste ALT + F11 pentru a deschide editorul VBA excel.
-
- Faceți clic dreapta pe project explorer. Mutați cursorul pe Insert -> Modulul Class. Apasa pe el. Același lucru se poate face și din meniul Insert.
-
- Clasa va fi adăugată în folderul „Modulul clasei”. Numele implicit este ca clasa1, clasa2 și așa mai departe. Puteți schimba numele clasei din fereastra proprietății. Să numim clasa noastră „Bun venit”.
- Acum să creăm adăugăm câteva atribute clasei noastre. Întrucât vreau ca aceste atribute să fie disponibile publicului, le folosesc operator de accesibilitate public.
Nume public As String Public var1 As Integer Public var2 As Integer
- Acum să adăugăm o funcție la această clasă. Vreau o funcție care să spună Bună! către utilizator. Pentru a face acest lucru, adăugați un sub și denumiți-l sayHiTo.
Sub sayHiTo (user As String) name = user MsgBox ("Bună!" & Nume) End Sub
- Acum să folosim clasa într-un modul. Introduceți un nou modul dacă nu aveți. Scrie un sub. Mi-am numit sub-testul.
Subtest () Dim wc Ca nou bun venit „Obiect de bun venit declarat și inițializat wc.sayHiTo („ Jack ”)” a folosit metoda sayHiTo a obiectului de bun venit. Sfârșitul Sub
- Rulați acest sub test folosind tasta F5. Va apărea „Salut! Jack” în registrul de lucru Excel.
Cum functioneazã?
În sub Test, am creat este un obiect "wc" al Bine ati venit clasă. Un obiect este creat în VBA în două metode. rulăm codul, sub Test creează un obiect wc din clasa Welcome. Acest obiect are toate proprietățile clasei Welcome. Folosim metoda sayHiTo din clasa Welcome pentru a saluta utilizatorul.
Crearea obiectelor în Excel VBA
-
- Crearea instantanee
În crearea instantanee, creăm un obiect în timp ce declarăm obiectul cu tasta „nouă”. În exemplul nostru de mai sus, am folosit crearea instantanee.
Dim wc Ca bun venit
2. Crearea întârziată
În crearea întârziată, declarăm mai întâi numai obiectul. Nu folosim cuvântul cheie „nou”. Pentru a utiliza obiectul, trebuie să-l inițializăm cu cuvântul cheie „nou”.
Sub test () Dim wc As Welcome 'wc.sayHiTo ("Jack")' generează erori deoarece wc nu este inițializat încă 'initializând obiectul Set wc = New Welcome wc.sayHiTo ("Cory")' acest lucru va funcționa. Sfârșitul Sub
Accesarea variabilelor unei clase
În exemplele de mai sus, am folosit variabile publice pentru clasă, dar este greșit să practici. Ar trebui să evităm să utilizăm variabile publice într-o clasă. Acum întrebarea este cum am putea accesa variabilele clasei. Mai devreme, am folosit subrutina pentru a accesa numele, dar clasele VBA oferă proprietăți care sunt utilizate pentru actualizarea și preluarea sistematică a valorilor variabilei private ale clasei. Proprietățile sunt mai elegante decât sub sau funcția pentru actualizarea și accesarea variabilelor private. Să vedem cum.
Sintaxa proprietății clasei
Nume privat As String Private var1 As Integer Private var2 As Integer Proprietate Let MyName (nm As String) nume = nm Proprietate finală Obțineți proprietatea MyName () As String MyName = name End Property
Să le folosim într-un modul.
Subtest () 'crearea obiectului de clasă Dim wc Ca nou bun venit Dim wc1 Ca nou bun venit' folosind proprietățile wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub
Când veți rula acest sub test, veți primi două nume tipărite pentru două obiecte din clasa „Bun venit”.
Cum diferă proprietățile de sub și funcții
În exemplul de mai sus, observați că am folosit proprietatea MyName ca variabilă. Am inițializat valoarea variabilei „Nume” doar scriind wc.MyName = "assdf". Această linie de comandă numită proprietatea numităProprietate Obține numele meu () ca șir. Nu am trecut nici o valoare între paranteze, așa cum am făcut la început.
În mod similar, pentru a imprima valorile variabilei „Nume” am folosit comandaDebug.Print wc.MyName. Nu este la fel de simplu ca inițializarea variabilă normală? Singura diferență este că poți face multe înproprietate segment. Puneți validarea datelor, calculul, comunicarea etc., iar utilizatorul va vedea doar rezultatul.
O altă diferență este că putem folosi același nume al proprietății pentru lăsa și obțineparte. Acest lucru îl face mai ușor și mai puțin confuz.
Deci, băieți, acesta a fost un exemplu simplu de modul de clasă în Excel VBA. Acesta este doar vârful aisbergului, există o mulțime de suc în acest subiect pe care îl vom explora în articolele ulterioare. Le vom explora pe fiecare dintre ele unul câte unul în cel mai simplu mod posibil. Sper că am fost suficient de explicativ pentru a vă face să înțelegeți acest lucru. Dacă aveți îndoieli cu privire la acest subiect sau la orice alt subiect Excel VBA, menționați-l în secțiunea de comentarii de mai jos.
Importați un modul dintr-un fișier utilizând VBA în Microsoft Excel | Aflați cum să importați întregul modul dintr-un alt fișier utilizând VBA.
Creați un nou modul folosind VBA în Microsoft Excel | Puteți utiliza un modul pentru a crea un alt model în VBA. Acest lucru vă poate ajuta să reduceți la minimum lucrările suplimentare.
Adăugați o procedură la un modul utilizând VBA în Microsoft Excel | Pentru a adăuga proceduri la module utilizați automat acest cod VBA.
Articole populare:
50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.
Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.
COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu este nevoie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.
Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.