[CDR 2017-2022] ООП в VBA есть ли смысл.

  • Автор темы Автор темы DukereD
  • Дата начала Дата начала

DukereD

макрософил
Топикстартер
Сообщения
523
Реакции
134
Собственно холиварный топик и есть сам вопрос.
Есть ли смысл использовать классы в VBA и какие это преимущества дает кроме "удобства кода". Будет ли меньше корел глючить изза проблем с памятью и ShapeRang'ами?
 
а объектная (!) модель разве не в классах описана?
 
Последнее редактирование:
Будет ли меньше корел глючить изза проблем с памятью и ShapeRang'ами?
С чего вдруг? Назовите хоть одну теоретическую причину с чего б должно было глючить меньше при заворачивании функций в классы?
 
С чего вдруг? Назовите хоть одну теоретическую причину с чего б должно было глючить меньше при заворачивании функций в классы?
так вот и я о том же. :) я сам приверженец классического подхода через SUB :)
думаю стоит ли переписывать код под классы или нет никакого смысла ) поэтому и спрашиваю: есть ли какие-то преимущества?
 
а объектная (!) модель разве не в классах описана?
ну сами объекты оно то понятно что на классах. но будет ли смысл в макросе написанном на классах. в приросте производительности, стабильности или еще чем-то.
 
немного почитал про ООП единственное, что нашел в качестве преимущества это то, что если выгружать объекты т.е. типа set obj = nothing то будет как бы экономить память. но по сути использовать не глобальные а локальные переменные внутри функций куда экономней )))
 
В VBA ООП рудиментарное
 
По беспределу. Конструкции более сложные, больше ресурсов едят.
По идее, должна создаваться таблица виртуальных методов. Опять же, могут быть проблемы при отладке кода. Как-то писал макрос, так столкнулся с такой фигней - если создать брекпоинт, в Watches добавить классовую переменную, то при остановке Корел зависал и вылетал. Если переменную не добавлять, то всё работало.

Но надо отдать должное, есть в классах и плюсы. Например, при выборочной сортировке по ряду параметров (длина, ширина, цвет заливки, цвет обводки, позиция и пр.) можно не использовать ветвление с выбором нужного свойства, а использовать тот же CallByName.
 
  • Спасибо
Реакции: DukereD