Для каждого модуля BAS все переменные уровня модуля выделяются при запуске приложения.Вы не можете освободить эти переменные (хотя вы можете установить для ссылки на объект значение Nothing, фактическая переменная все равно будет существовать).
Переменные уровня модуля модуля CLS выделяются только при создании экземпляра класса.Вся память, выделенная для экземпляра класса, освобождается, когда класс уничтожается.Вы можете создать столько экземпляров модуля CLS, сколько захотите, и у каждого есть собственный закрытый набор переменных уровня модуля.
В модулях BAS область применения переменных, объявленных как Public, является глобальной для приложения.Однако в модулях CLS вы можете получить доступ к переменной Public только в том случае, если у вас есть ссылка на экземпляр этого класса (за кулисами эта переменная становится Public Property).
Как правило, все переменные и процедуры, которыеВы хотите получить доступ из любого модуля должны быть помещены в модуль BAS.