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)