By "program", I assume you mean, a public procedure or function in a
standard module?
A collection (or any other variable) will only retain its previous value, if
it is declared globally to the procedure you're running, or is declared
Static within that procedure (which is much the same thing). There really
shouldn't be any need to reset the environment, before you run the procedure
again.
If a collection is declared globally, and retains its previous values, but
you do not want that to happen, just move its declaration inside the
procedure that uses it. If it is used by *several* procedures, pass it
around as a parameter. Alternatively, just reset it in code at the start of
the main procedure (set blah = new collection).
Resetting the environment is not the appropriate way to do what you want.
HTH,
TC