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