VBA klass - Kuidas luua VBA-s kohandatud klassi ja objekte?

Lang L: none (table-of-contents)

Exceli VBA klassi moodul

VBA klass võimaldab meil luua oma objektifunktsiooni, kuhu saame lisada mis tahes funktsioone, käsurea üksikasju, funktsiooni tüüpi. Kui loome VBA-s klassi, toimivad nad nagu täiesti iseseisev objekti funktsioon, kuid nad kõik on omavahel ühendatud.

See aitab meil luua selliseid rakendusi, mis on VBA-s ja Excelis juba olemas. Näiteks pöörleb pedaalimise tsikliratas. Pedaalid ja rattad on mõlemad tsükli osad, kuid mõlemad töötavad iseseisvalt, et anda väljund liikuva tsüklina.

Kuidas luua VBA-s kohandatud klassi ja objekte?

Vaatleme kolme erineva ettevõtte mobiiltelefoni näidet, milleks on Apple, Samsung ja Nokia - arvestades nende ettevõtete populaarseid ja hiljuti turule tulnud mobiiltelefone, milleks on iPhone X, Samsung S8 ja Nokia 7+.

Võrdleme nende mobiiltelefonide mõningaid olulisi funktsioone, nagu bränd, mudel, ekraani suurus, kaamera tüüp ja laadija tüüp. Need on selle põhjal põhimõtteliselt olulised omadused. Enamasti võrdleme suvalist mobiiltelefoni. Allpool oleme kaardil ülaltoodud parameetrid kaardistanud.

Valige aknas VBA menüü Lisa menüü Klassimoodul, nagu allpool näidatud.

Klassimooduli akna saab alguse Option Explicit, nagu allpool näidatud.

Selgesõnaline variant tagab, et muutujad tuleb deklareerida enne nende kasutamist. Kui me ei deklareeri ühtegi muutujat ja ei kasuta seda, siis süsteem viskab vea. Nüüd klassis määratlege kõik mobiiltelefonide mõõtmise parameetrid koos avalikkusega . See muudab need määratletud parameetrid kasutamiseks piiranguteta igal ajal ja igal pool.

Kood:

Variant Selgesõnaline 'omaduste loend Avalik kaubamärk stringina Avalik mudel stringina Avalik ekraanSuurus stringina Avalik kaameraTüüp stringina Avalik laadijaTüüp stringina

Nüüd lisame iga funktsiooni jaoks alamkategooriaga erineva mobiiltelefoni tööprotsessi, funktsioonid ja funktsioonid, nagu telefoni käivitamine, telefoni väljalülitamine, muusika esitamine, aku laadimine jne. Ja lisage igasse alamkategooria tsüklisse sõnumikast, et saaksime näha, millised meetodid praegu töötavad.

Kood:

'Võimalikud tehnikad Sub MobileStarts () MsgBox "Mobiil lülitub sisse" End Sub
Sub MobileOff () MsgBox "Mobiil lülitub välja" End Sub
Sub PlayMusic () MsgBox "Helisüsteem töötab praegu" End Sub
Sub BatteryCharge () MsgBox "Laadija on praegu ühendatud" End Sub

See viib klassi loomise lõpule. Enne kaugemale liikumist on soovitatav muuta klassi mooduli nimi. Valige mis tahes nimi vastavalt teie nõudmistele, kuna me muudame selle nimeks Mobiil .

Nüüd kirjutame koodi moodulisse, kus näeme ja võrdleme iga mobiiltelefoni kaubamärgi omadusi ja funktsioone. Selleks peame lisama mooduli , minnes sinna menüü Lisa all, nagu näidatud menüüs.

Saame uue mooduli avatuks, kui töötamise ja klassi loomise ajal on selles lubatud Option Explicit. Alustage nüüd alamkategooriat täidetud funktsioonide nimel, nagu allpool näidatud.

Saame mooduli nime muuta nagu ka klassi puhul. See aitab meil hoida loodud VBA-koodi koos seotud identiteeti. Seda saab teha omaduste akendest, nagu allpool näidatud.

Oleme juba määratlenud kõigi brändide mobiiltelefonide erinevad funktsioonid, funktsioonid ja meetodid. Määratleme nüüd 3 muutujat mis tahes nimes (eelistatavalt mobiiltelefoni kaubamärgi nimes) ja määrame selle Mobile'ile. Alustame kõigepealt iPhone'ist, nagu allpool näidatud.

Samamoodi tehke sama ülejäänud mobiiltelefonibrändiga, nagu allpool näidatud.

Sellega määrame loodud klassi igale brändi Mobile dimensioonilisele muutujale. Nüüd tehke iga brändi puhul sama protsess klassi määramisel .

Nüüd peame määrama kõik mobiiltelefoni omadused ja selle väärtuse. Selleks kasutage funktsiooni Set ja määrake see uuele mobiilile, nagu allpool näidatud.

Nüüd avage iPhone'i otsasilmus. Siin määratleme kõik mobiili atribuudid.

Nagu näeme, oleme määranud kõik iPhone'i kaubamärgi määratletud funktsioonid klassist konkreetsete väärtustega Stringiks.

Tehke sama asja ka Samsungi ja Nokia kaubamärgi puhul.

Nüüd kasutame otseaknasse teabe printimiseks DebugPrinti . See on kasulik seal, kus soovime koodireal näha teatud muutujat. Valime iga mobiilibrändi jaoks erinevad funktsioonid, nagu allpool näidatud.

Nüüd anda MobileStarts ja MobileOff funktsionaalne toimingud, mida me määratletud klassi iga mobiilne brändid samas moodul koos postkasti. Võite sõnumikasti siin vahele jätta.

See lõpetab klassi määramise moodulile. Nüüd kompileerige kood ja käivitage F5-klahvi abil. Näeme iga mobiilibrändi sõnumit, nagu allpool näidatud.

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.
  • Testimiseks saate klassi loomisel kasutada väiksemaid tehnikaid või funktsioone. Seda saab hiljem muuta, kui soovime lisada rohkem toote funktsioone ja tehnikaid.
  • Kaaluge alati sarnaseid või samu funktsioone, kui lõpetame klassi ja määrame selle moodulile. See aitab meil võrrelda erinevate toodete omadusi.

Huvitavad Artiklid...