Как да създам и използвам модули за клас VBA? (Примери)

Модули за клас на Excel VBA

Когато използваме VBA, използваме свойствата и атрибутите, дефинирани в VBA, но какво се случва, когато искаме да създадем свои собствени свойства и методи и атрибути, това е, когато използваме модул на клас във VBA, за да можем да го дефинираме от потребителя, class модул има собствен набор от кодове, дефинирани от потребителя за функции, свойства и обекти.

Модулите на класа се използват за създаване на обект. Когато казваме обекти, въпреки че е променлива, това са малки програми. Докато пишем кода, обикновено пишем в модули. Основните модули са мястото, където пишем кодовете си, за да свършим работата. Също така използваме Потребителски формуляр за създаване на графични потребителски интерфейси.

Но ако погледнете горното изображение, можете да видите „Модул за клас“. Със сигурност знам, че не сте го докоснали, докато не прочетете тази публикация. Сигурно се чудите какво представлява този модул от клас VBA, когато цялата работа може да бъде изпълнена чрез използването на нашия редовен модул.

Какво представлява модулът за клас?

Модулите на класа позволяват на потребителя да създава свой собствен обект, точно както имаме вградени обекти в обикновени модули като „Работни листове“, „Работни книги“, „Обхват“ и т.н.

Подобно на това, използвайки модул на клас, ние можем да създаваме персонализирани обекти.

Класът има пряка връзка с обекти. Например, имате машинна диаграма за изграждане на машина, но не забравяйте, че тя все още не е машина и с помощта на тази машинна диаграма можем да изградим много такива машини.

Например, ако искате да изброите различни марки машини, за да изброите характеристиките на различни модели.

В машината имаме търговска марка, сериен номер, мощност на машината, цвят на машината, брой двигатели, включени в нея, тип моторно гориво и т.н. ... На технически език те се наричат ​​„свойства“.

По отношение на свойствата на машината можем да стартираме, да изключим, да увеличим скоростта на двигателя, да направим пауза и т.н. ... И те се наричат ​​„Методи“.

Пример

Можете да изтеглите този шаблон на VBA клас тук - VBA шаблон на класа

Нека започнем да търкаляме топката, защото винаги е скучно да се чете теоретичната част. За да вмъкнете модул на клас, отидете на опцията за вмъкване в редактора на visual basic.

Сега можем да видим клас модул като по-долу.

Това изглежда подобно на това, което имаме по-горе като обикновен модул. Променете името на модула на класа в прозореца за свойства. За да видите прозореца за свойства, натиснете клавиша F4 .

Сега декларирайте променливата като низ.

Без да създаваме подпроцедура в vba, трябва да декларираме променливата и този път, като използваме думата „Public“, а не „Dim“.

Сега можем да получим достъп до тази променлива във всеки модул и модул от клас.

Сега отидете на обикновен модул и дайте име на променливата.

След декларирането на променливата трябва да присвоим типа данни във VBA, вместо да присвоим типа на данните, можем просто да дадем името на модула на класа, т.е. CM

Сега, използвайки променливата „k“, можем да получим достъп до публичната променлива, която сме дефинирали в модула на класа, т.е. „Моята стойност“.

Както виждаме на горната снимка, тя показва опцията за име на променлива от модула на класа, за да му присвои стойността.

Сега покажете стойността на присвоената променлива в полето за съобщения на VBA.

Код:

 Sub Class_Example () Dim k As New CM k.MyValue = "Hello" MsgBox k.MyValue End Sub 

Изпълнете този код с помощта на клавиша F5 или ръчно, за да покажете резултата.

Модул на класа срещу обекти

В началния етап на модула на класа всички се бъркат с това, което е клас и кое е обект.

За да разберете това, припомнете нашия по-ранен пример за машинна диаграма. Първото нещо, от което се нуждаем, за да произведем машина, е първо да проектираме машината и след това няколко копия могат да бъдат копирани с този дизайн.

Сега свържете това с нашия модул за клас.

  • Тук Class Module е дизайн. И Object е копието, създадено от Design.
  • Още едно интересно нещо е, че трябва да използваме думата „нов“, за да създадем обект от модула на класа.

По-долу е даден пример за същото.

Още нещо, когато използваме вградени обекти като работни листове, работни книги и обхвати, не използваме думата „ново“

За да започнете процедурата с модула за клас, тези основни неща трябва да знаете. В следващите статии ще видим примери от следващото ниво.

Изглежда трудно да се разбере това, колкото повече време прекарвате с модул за клас, ще свикнете с него.