Модули от клас VBA и как да ги използваме

Anonim

Какво е клас във VBA?

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

В реалния живот моделът (дизайнът и функционалността) на автомобил е клас, а самият автомобил е обект на този клас. В класа определяме какво има колата в себе си и какво може да направи. Например, колата има 4 колела, 5 предавки, волан и т.н. Това са атрибути/свойства. Определяме и какво може да направи една кола, като движение напред, назад, завой и т. Н. Това са функции на класа автомобил. Автомобилен обект, създаден с помощта на клас car, ще притежава всички тези свойства. Ако дефинирате кола, която има 5 колела, автомобилът, създаден с помощта на този клас, ще има 5 колела. Разбирате смисъла.

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

Използване на модул за клас VBA на Excel

Докато работите във VBA, трябва да сте използвали Range ("A1"). Select. Диапазонът е предварително зададен клас във VBA. Избирането е една от функциите на класа Range, които избират посочения диапазон. По същия начин Debug е клас във VBA, а печатът и утвърждаването са неговите методи. Работни листове, работни книги, диапазон и т. Н. Всички са VBA класове, които използваме в подгрупите си.

Създайте свой собствен клас

Първо, трябва да добавим модул клас във VBA

Натиснете ALT+F11 комбинация от клавиши, за да отворите Excel VBA редактор.

    • Щракнете с десния бутон върху Explorer Explorer. Преместете курсора на Insert-> Class module. Щракнете върху него. Същото може да се направи от менюто Вмъкване.

    • Класът ще бъде добавен в папката "Класов модул". Името по подразбиране е като class1, class2 и т.н. Можете да промените името на класа от прозореца на свойството. Нека наречем нашия клас „Добре дошли“.

  • Сега нека създадем добавяне на някои атрибути към нашия клас. Тъй като искам тези атрибути да бъдат достъпни за обществеността, имам полза оператор за достъпност обществен.
    Публично име As String Public var1 As Integer Public var2 As Integer 
  • Сега нека добавим функция към този клас. Искам функция, която казва Здравей! към потребителя. За да направите това, добавете подзаглавие и го наречете sayHiTo.
    Sub sayHiTo (потребител като низ) име = потребител MsgBox ("Здравей!" & Име) Край на Sub 
  • Сега нека използваме класа в модул. Поставете нов модул, ако нямате такъв. Напишете подзаглавие. Нарекох моя подтест.
    Sub test () Dim wc As New Welcome 'Обявен и инициализиран Добре дошъл обект wc.sayHiTo ("Jack")' използва sayHiTo метода на Welcome Object. End Sub 
  • Стартирайте този подтест, като използвате клавиша F5. Той ще покаже „Здравей! Джак“ в работната книга на Excel.

Как работи?

В подтеста, който създадохме е обект "wc" на Добре дошли клас. Обект се създава във VBA по два метода. изпълняваме кода, Test sub създава обект wc от класа Welcome. Този обект има всички свойства на класа Welcome. Използваме метода sayHiTo от класа Welcome, за да поздравим потребителя.

Създаване на обект в Excel VBA

    1. Незабавно създаване

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

Dim wc As New Welcome

2. Забавено създаване
При забавено създаване първо декларираме само обекта. Не използваме ключовата дума „нов“. За да използваме обекта, трябва да го инициализираме с ключовата дума "new".

Sub test () Dim wc As Welcome 'wc.sayHiTo ("Jack")' генерира грешка, тъй като wc все още не е инициализиран 'инициализиращ обект Set wc = New Welcome wc.sayHiTo ("Cory")' това ще работи. End Sub 

Достъп до променливи на клас

В горните примери сме използвали публични променливи за клас, но е погрешно да се практикува. Трябва да избягваме използването на публични променливи в клас. Сега въпросът е как бихме получили достъп до променливи на класа. По -рано използвахме подпрограма за достъп до име, но VBA класовете предоставят свойства, които се използват за системно актуализиране и извличане на стойности на частни променливи на класа. Свойствата са по -елегантни от sub или функция за актуализиране и достъп до частни променливи. Да видим как.

Синтаксис на свойството на класа

Частно име As String Private var1 As Integer Private var2 As Integer Собственост Let MyName (nm As String) име = nm Крайно свойство Вземете имот MyName () Като String MyName = име Крайно свойство 

Нека ги използваме в модул.

Sub test () 'създаване на обект на клас Dim wc As New Welcome Dim wc1 As New Welcome' използвайки свойства wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. MyName End Sub 

Когато стартирате този тестов подвод, ще получите две имена, отпечатани за два обекта от класа "Добре дошли".

Как свойствата са различни от под и функции

В горния пример, забележете, че сме използвали свойството MyName като променлива. Инициализирахме стойността на променливата "Име" само чрез писане wc.MyName = "assdf". Този команден ред, наречен свойството, нареченоСвойство Вземете MyName () като низ. Не предадохме никаква стойност в скоби, както направихме в началото.

По същия начин, за да отпечатаме стойностите на променливата "Име", използвахме командаОтстраняване на грешки. Отпечатайте wc.MyName. Не е ли толкова просто, колкото нормалната инициализация на променлива? Единствената разлика е, че можете да направите много вИмот сегмент. Поставяте валидиране на данни, изчисление, комуникация и т.н. и потребителят ще види само резултата.

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

Така че да, момчета, това беше прост пример за модул на клас в Excel VBA. Това е само върхът на айсберга, в тази тема има много сок, който ще изследваме в по -късни статии. Ще изследваме всеки един от тях по възможно най -лесния начин. Надявам се, че бях достатъчно обяснителен, за да разберете това. Ако имате някакви съмнения относно тази тема или друга тема на Excel за VBA, споменете я в секцията за коментари по -долу.

Импортиране на модул от файл с помощта на VBA в Microsoft Excel | Научете как да импортирате целия модул от друг файл с помощта на VBA.

Създайте нов модул, използвайки VBA в Microsoft Excel | Можете да използвате модул за създаване на друг модел във VBA. Това може да ви помогне да сведете до минимум допълнителните режийни работи.

Добавяне на процедура към модул, използващ VBA в Microsoft Excel | За автоматично добавяне на процедури към модули използвайте този VBA код.

Популярни статии:

50 преки пътища в Excel за повишаване на вашата производителност | Бъдете по -бързи в задачата си. Тези 50 преки пътища ще ви накарат да работите още по -бързо в Excel.

Функцията VLOOKUP в Excel | Това е една от най -използваните и популярни функции на excel, която се използва за търсене на стойност от различни диапазони и листове.

COUNTIF в Excel 2016 | Пребройте стойностите с условия, използвайки тази невероятна функция. Не е необходимо да филтрирате данните си, за да преброите конкретна стойност. Функцията Countif е от съществено значение за подготовката на вашето табло.

Как да използвате функцията SUMIF в Excel | Това е друга основна функция на таблото. Това ви помага да обобщите стойностите при конкретни условия.