VB6 circular references: explicit Cleanup method or ObjPtr weak back-reference?
Classic Visual Basic 6 (pre-.NET) and VBA destroy a COM object only when its reference count reaches zero. A parent class and child class that hold references to each other therefore never terminate: Class_Terminate never fires, and any cleanup code placed there silently never runs. Two documented ways to break such a cycle exist: Explicit teardown — a Clean