É bem comum um evento de macro criar apenas um objeto BPesquisa e liberar ele ao fim, uma linha antes do End Sub. Considernado que o VB libera para você, num primeiro momento, pode parecer um código desnecessário e repetitivo. Mas caso ocorra um problema na liberação do objeto, você vai saber que o erro ocorreu na linha Set obj = Nothing. Ou seja, vai ficar claro que o problema é ali.
Deixar para o contador de referências do VB liberar o objeto no End Sub, pode ficar dificil de diagnostícar caso tenha algum bug no destrutor do objeto (que geralmente é implementado em Delphi ou C#),
Além disso o ideal é você liberar os objetos explicitamente se não for mais utilizá-los. Imagine uma macro onde você cria vários objetos durante sua execução. O ideal é que você os libere assim que terminar de utilizá-los, evitando desperdício de memória. Algumas macros são pequenas e talvez isso pareca uma preocupação tola. Mas com o tempo elas crescem (manutenção, implementações, etc) e acredito que adotando esta prática você garante uma vida mais tranquila no futuro.