Potser algun cop voldrem una macro que es pugui executar només un sol cop. O potser voldrem que sota unes determinades condicions s’elimini una macro. Doncs bé, aquest codi us pot ajudar.

Sub EliminaMacro(macro as string, mòdul as string)

Dim liDeb, NbLi

With ThisWorkbook.VBProject.VBComponents(mòdul).CodeModule
liDeb = .ProcStartLine(macro, 0)
NbLi = .ProcCountLines(macro, 0)
.DeleteLines liDeb, NbLi
End With

End Sub

La crida de la macro es fa des d’una altra macro:
EliminaMacro "[nom de la macro]" , "[nom del mòdul]"

Aquesta macro elimina només la macro especificada dins el mòdul especificat, deixa totes les altres línies de codi intactes. Com és una subrutina amb variables la macro queda oculta i no es pot executar des del menú macro>macros… (Alt+F8). També podem eliminar les variables i posar el nom del mòdul i de la macro manualment als llocs especificats, d’aquesta manera la macro es faria visible.