Вам не нужно ... для 90% всех приложений стандартный VBA как раз подходит. Используя классы, вы получаете больше «логического контроля» над вашим кодом.
Предположим, у вас есть функция Function IsUnique(MyArg as String) as Boolean
, которая просматривает таблицу лиц с именем, переданным в MyArg
, и возвращает TRUE
, если имя не найдено в таблице. Ничто не мешает вам, например, вызвать эту функцию и передать строку любимого овоща, выбранного пользователем. Вы по-прежнему получите синтаксически правильную программу, несмотря на то, что этот вызов всегда будет возвращать TRUE
, поскольку овощи хранятся где-то еще в этом приложении.
Теперь предположим, что у вас есть класс PersonClass
, содержащий функции (= свойство) Name
и IsUnique()
Ваш код, наконец, вам может понравиться
Dim MySpouse as PersonClass
Set MySpouse = New PersonClass
MySpouse.Name = "Fanny Hill"
If MySpouse.IsUnique() Then
MySpouse.Insert
End If
То, что кажется излишним *, действительно инкапсулирует кодовые блоки, функции и переменные, относящиеся к Person (здесь называемые методы и свойства ), в класс и сделайте для своего кода более очевидным, что вы делаете с переменной, которая использует этот шаблон класса (или экземпляр этого класса)
Типичный пример: арифметика IP-адресов ..... (добавление IP-адресов, поиск базовых или широковещательных адресов, преобразование между различными обозначениями маски, проверка двух диапазонов на перекрытие, поиск маски сети вокруг двух или более IP-адресов и т. Д. И т. Д. И т. Д. и т. д.), необходимых в дюжине приложений: напишите модуль класса один раз, а после тестирования вы можете легко использовать его повторно.
Еще одним преимуществом классов является то, что при вводе кода в редакторе VBA завершение кода точно говорит вам, что вы можете сделать с классом (т. Е. Все свойства и методы представлены в раскрывающемся списке) - комфорт, который вы не делаете. с процедурами и функциями (они только сообщают вам имена и типы аргументов)
Достаточно?