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

Модули классов Excel VBA

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

Модули классов используются для создания объекта. Когда мы говорим «объекты», даже если это переменная, это небольшие программы. При написании кода мы обычно пишем модулями. Базовые модули - это то место, где мы пишем наши коды для выполнения работы. Мы также используем User Form для создания графических пользовательских интерфейсов.

Но если вы посмотрите на изображение выше, вы увидите «Модуль класса». Я точно знаю, что вы не касались этого, пока не прочитаете этот пост. Вам должно быть интересно, что это за модуль класса VBA, когда всю работу можно выполнить, используя сам наш обычный модуль.

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

Модули классов позволяют пользователю создавать свои собственные объекты точно так же, как у нас есть встроенные объекты в обычных модулях, таких как «Рабочие листы», «Рабочие книги», «Диапазон» и т. Д.

Подобно этому, используя модуль класса, мы можем создавать собственные объекты.

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

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

В машине у нас есть торговая марка, серийный номер, мощность машины, цвет машины, количество задействованных в ней двигателей, тип моторного топлива и т. Д.… На техническом языке это называется «свойствами».

Что касается свойств машины, мы можем запускать, мы можем выключать, мы можем увеличивать скорость двигателя, мы можем делать паузу и т. Д. И это называется «Методы».

пример

Вы можете скачать этот шаблон класса VBA здесь - Шаблон класса VBA

Начнем с дела, потому что читать теоретическую часть всегда скучно. Чтобы вставить модуль класса, перейдите к опции вставки в визуальном базовом редакторе.

Теперь мы можем увидеть модуль класса, подобный приведенному ниже.

Он похож на тот, что у нас выше, как обычный модуль. Измените имя модуля класса в окне свойств. Чтобы увидеть окно свойств, нажмите клавишу F4 .

Теперь объявите переменную как строку.

Без создания подпроцедуры в vba нам нужно объявить переменную, и на этот раз использовать слово «Public», а не «Dim».

Теперь мы можем получить доступ к этой переменной в любом модуле и модуле класса.

Теперь перейдите к обычному модулю и назовите переменную.

После объявления переменной нам нужно назначить тип данных в VBA, вместо назначения типа данных мы можем просто указать имя модуля класса, то есть CM

Теперь, используя переменную «k», мы можем получить доступ к публичной переменной, которую мы определили в модуле класса, то есть «My Value».

Как мы видим на изображении выше, он показывает вариант имени переменной из модуля класса, чтобы присвоить ей значение.

Теперь покажите значение присвоенной переменной в окне сообщения VBA.

Код:

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

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

Модуль класса против объектов

На начальном этапе работы с модулем класса все путаются с тем, что такое класс и что такое объект.

Чтобы понять это, вспомните наш предыдущий пример схемы машины. Первое, что нам нужно для производства машины, это сначала спроектировать машину, а затем несколько копий могут быть воспроизведены с этим дизайном.

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

  • Здесь модуль класса - это дизайн. А Объект - это копия, созданная Дизайном.
  • Еще одна интересная вещь: нам нужно использовать слово «новый» для создания объекта из модуля класса.

Ниже приведен пример того же.

Еще одна вещь, когда мы используем встроенные объекты, такие как рабочие листы, книги и объекты диапазона, мы не используем слово «новый».

Вот основные вещи, которые вам следует знать, чтобы начать работу с модулем класса. В следующих статьях мы увидим примеры следующего уровня.

Это кажется трудным для понимания, чем больше времени вы проводите с модулем класса, вы к нему привыкните.