Модул за клас VBA на Excel
Класът VBA ни позволява да създадем наша собствена функция Object, в която можем да добавяме всякакъв вид функции, подробности за командния ред, тип функция. Когато създаваме Class във VBA, те действат като напълно независима обектна функция, но всички те са свързани заедно.
Това ни помага при изграждането на приложения като тези, които вече са налице във VBA и Excel. Например колелото на цикъла на въртене се върти. Педалите и джантите са частите на цикъла, но и двата работят независимо, за да дадат изхода като подвижен цикъл.

Как да създам потребителски клас и обекти във VBA?
Нека разгледаме пример за мобилни телефони на 3 различни компании, които са Apple, Samsung и Nokia, като се вземат предвид популярните и новосъздадени мобилни телефони на тези компании, които са iPhone X, Samsung S8 и Nokia 7+.
Ще сравним някои от важните функции за тези мобилни телефони, като марка, модел, размер на екрана, тип камера и тип зарядно устройство. Това са основно важни характеристики на тази основа. Най-често сравняваме всеки мобилен телефон. По-долу сме картографирали обсъдените по-горе параметри в диаграма.

В прозореца VBA от менюто Вмъкване изберете модула за клас, както е показано по-долу.

Ще получим прозореца на модула Class, започвайки с Option Explicit, както е показано по-долу.

Опция Изрично гарантира, че променливите трябва да бъдат декларирани преди да бъдат използвани. Ако не декларираме никаква променлива и не я използваме, тогава системата ще изведе грешка. Сега в клас дефинирайте всички обсъдени параметри за измерване на мобилни телефони с обществеността . Това ще направи тези дефинирани параметри отворени за използване по всяко време и навсякъде, без никакви ограничения.
Код:
Опция Изричен 'Списък на свойства Публична марка като низ Публичен модел като низ Обществен екран Размер като низ Публична камера Тип като низ Публично зарядно устройство Тип като низ

Сега ще добавим различен процес на работа, функции и функции на мобилен телефон, като стартиране на телефон, изключване на телефона, възпроизвеждане на музика, зареждане на батерията и др. С подкатегория за всяка функция, както е показано по-долу. И добавете поле за съобщение във всеки цикъл на подкатегория, за да можем да видим кои методи работят в момента.
Код:
'Възможни техники Sub MobileStarts () MsgBox "Mobile се включва" End Sub
Sub MobileOff () MsgBox "Mobile се изключва" Край Sub
Sub PlayMusic () MsgBox "Аудиосистемата в момента работи" Край на Sub
Sub BatteryCharge () MsgBox "Зарядното устройство в момента е включено" End Sub

Това завършва създаването на Class. Преди да продължим напред, препоръчително е да промените името на модула на класа. Изберете всяко име според вашето изискване, тъй като го променяме на мобилен .

Сега ще напишем код в модул, където ще видим и сравним характеристиките и функциите на всяка марка мобилен телефон. За това трябва да добавим модул, като отидем там в менюто Вмъкване, както е показано в менюто.

Ще получим нов модул, отворен с включена Option Explicit в това, докато работим и създаваме клас. Сега започнете да пишете Подкатегория в името на изпълняваните функции, както е показано по-долу.

Можем да променим името на модула, както и за Class. Това ни помага да запазим свързаната идентичност на създадения код на VBA. Това може да се направи от прозорци със свойства, както е показано по-долу.

Вече дефинирахме различни функции, функции и методи на всички марки мобилни телефони. Сега нека дефинираме 3 променливи във всяко име (за предпочитане в името на марката на мобилния телефон) и го присвоим на Mobile. Нека започнем първо с iPhone, както е показано по-долу.

По същия начин направете същото за останалата част от марката мобилен телефон, както е показано по-долу.

По този начин ние присвояваме създадения клас на всяка размерна променлива на марката Mobile. Сега за всяка марка направете същия процес на присвояване на Класа .
Сега трябва да присвоим всички функции на мобилния телефон и неговата стойност. За целта използвайте функцията Set и го присвойте на New Mobile, както е показано по-долу.

Сега отворете With-End цикъл за iPhone. Тук ще дефинираме всеки атрибут на мобилния телефон.

Както виждаме, ние определихме всички дефинирани характеристики на марката iPhone от Class с конкретни стойности като String.
Направете същото за марката Samsung и Nokia.

Сега ще използваме DebugPrint, за да отпечатаме информацията в непосредствения прозорец. Полезно е, когато искаме да видим определена променлива в ред код. Ще изберем различни функции за всяка марка Mobile, както е показано по-долу.

Сега задайте функционалните операции MobileStarts и MobileOff , които дефинирахме в Class, на всяка от мобилните марки в същия модул заедно с полето Съобщение. Можете да пропуснете полето за съобщение тук.

Това завършва присвояването на клас на модул. Сега компилирайте кода и стартирайте с помощта на клавиша F5. Ще видим посланието на всяка мобилна марка, както е показано по-долу.

Сега, ако искате да знаете какви променливи и функции имат какви стойности в него, за това отворете прозореца Local от раздела изглед, който ще ни помогне да получим подробностите, когато компилираме кода, както е показано по-долу.

Кодът по-долу е за справка.
Код:
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.
- За тестване можете да използвате по-малко техники или функции при създаването на Class. Това може да бъде променено по-късно, когато искаме да добавим повече функции и техники на продукта.
- Винаги обмисляйте подобни или същите функции, когато завършим Class и го присвоим на модул. Това ще ни помогне да сравним характеристиките на различните продукти.