Як створити та використовувати модулі класу VBA? (Приклади)

Модулі класу Excel VBA

Коли ми використовуємо VBA, ми використовуємо властивості та атрибути, визначені у VBA, але що трапляється, коли ми хочемо створити власні властивості та методи та атрибути, тобто коли ми використовуємо модуль класу у VBA, щоб ми могли мати його визначений користувачем, Модуль class має власний набір кодів, визначених користувачем для функцій, властивостей та об’єктів.

Модулі класів використовуються для створення об’єкта. Коли ми говоримо об'єкти, навіть якщо це змінна, це невеликі програми. Під час написання коду ми зазвичай пишемо в модулях. Основні модулі - це місце, де ми пишемо наші коди для виконання роботи. Ми також використовуємо форму користувача для створення графічних інтерфейсів користувача.

Але якщо ви подивитесь на зображення вище, ви побачите “Модуль класу”. Я точно знаю, що ви цього не торкалися, поки не прочитаєте цей пост. Напевно, вам цікаво, що це за модуль класу VBA, коли всю роботу можна виконати за допомогою самого нашого звичайного модуля.

Що таке модуль класу?

Модулі класів дозволяють користувачеві створювати власний об'єкт, як і вбудовані об'єкти в звичайні модулі, такі як "Робочі аркуші", "Робочі книги", "Діапазон" тощо.

Як і за допомогою модуля класу, ми можемо створювати власні об'єкти.

Клас має прямий зв’язок з об’єктами. Наприклад, у вас є діаграма машини для побудови машини, але пам’ятайте, що це ще не машина, і за допомогою цієї схеми машини ми можемо побудувати багато подібних машин.

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

У машині ми маємо торгову марку, серійний номер, потужність машини, колір машини, кількість задіяних у ній двигунів, тип моторного палива тощо ... Технічною мовою вони називаються “властивості”.

Що стосується властивостей машини, ми можемо запустити, ми можемо вимкнути, ми можемо збільшити частоту обертання двигуна, ми можемо зробити паузу тощо ... І це називається «Методами».

Приклад

Ви можете завантажити цей шаблон класу VBA тут - Шаблон класу VBA

Почнемо котити м’яч, тому що читати теоретичну частину завжди нудно. Щоб вставити модуль класу, перейдіть до опції вставки в редакторі Visual Basic.

Тепер ми можемо побачити модуль класу, як показано нижче.

Це схоже на той, який ми маємо вище як звичайний модуль. Змініть назву модуля класу у вікні властивостей. Щоб переглянути вікно властивостей, натисніть клавішу F4 .

Тепер оголосіть змінну як рядок.

Без створення підпроцедури у vba нам потрібно оголосити змінну, а також цього разу, використовуючи слово “Public”, а не “Dim”.

Тепер ми можемо отримати доступ до цієї змінної в будь-якому модулі та модулі класу.

Тепер перейдіть до звичайного модуля та назвіть змінну.

Після оголошення змінної нам потрібно призначити тип даних у VBA, замість того, щоб присвоїти тип даних, ми можемо просто назвати модуль класу, тобто CM

Тепер, використовуючи змінну "k", ми можемо отримати доступ до загальнодоступної змінної, яку ми визначили в модулі класу, тобто "Моє значення".

Як ми бачимо на наведеному вище малюнку, він показує можливість імені змінної з модуля класу, щоб призначити йому значення.

Тепер покажіть значення призначеної змінної у вікні повідомлення VBA.

Код:

 Підклас_Приклад () Dim k як новий CM k.MyValue = "Привіт" MsgBox k.MyValue Кінець Sub 

Запустіть цей код за допомогою клавіші F5 або вручну, щоб показати результат.

Модуль класу проти об’єктів

На початковому етапі модуля класу всі плутаються з тим, що є класом, а що об’єктом.

Щоб зрозуміти це, згадайте наш попередній приклад діаграми машини. Перше, що нам потрібно для виготовлення машини, це те, що нам потрібно спочатку спроектувати машину, а потім кілька копій можна відтворити з цією конструкцією.

Тепер зв’яжіть це з нашим модулем класу.

  • Тут модуль класу - це дизайн. А Об'єкт - це копія, створена Дизайном.
  • Ще одна цікава річ - нам потрібно використовувати слово “new” для створення об’єкта з модуля класу.

Нижче наведено приклад того самого.

Ще одна річ, коли ми використовуємо вбудовані об'єкти, такі як робочі аркуші, книги та об'єкти діапазону, ми не використовуємо слово "новий"

Щоб розпочати розгляд з модуля класу, вам слід знати ці основні речі. У наступних статтях ми побачимо приклади наступного рівня.

Здається, важко це зрозуміти, чим більше часу ви витратите на модуль класу, то звикнете.