Utilize ReleaseCOMObject para melhor otimização

O ambiente do .NET permite o acesso a componentes COM, que podem ser componentes COM produzidos pelo próprio .NET (rodando em ambiente gerenciado) ou não (rodando em ambiente não gerenciado).

Para garantir a liberação de memória após termos chamado componentes COM não gerenciados é recomendável que a aplicação dispense o componente utilizando o método ReleaseCOMObject.

É necessário um imports para System.Runtime.InteropServices . A instrução fica da seguinte forma:

Marshal.ReleaseComObject(obj)