Als u met talloze macro's werkt en u wilt dat een macro alle bestaande codes uit de huidige Excel-werkmap wist, dan zal het volgende artikel zeker helpen.
Wanneer u alle macro's uit een werkmap of document wilt verwijderen, kunt u onderstaande macro gebruiken.
De procedure kan zowel in Excel als Word worden gebruikt zonder enige bewerking.
Sub RemoveAllMacros (objDocument As Object) ' verwijdert alle VBProject-componenten uit objDocument ' verwijdert de code van ingebouwde componenten die niet kunnen worden verwijderd ' gebruik als volgt: RemoveAllMacros ActiveWorkbook ' in Excel ' of als volgt: RemoveAllMacros ActiveWorkbookDocument ' in Word ' vereist een verwijzing naar de ' Microsoft Visual Basic for Applications Extensibility-bibliotheek Dim i As Long, l As Long If objDocument Is Nothing Then Exit Sub i = 0 On Error Resume Next i = objDocument.VBProject.VBComponents.Count On Error GoTo 0 If i < 1 Dan ' geen VBComponents of beschermde VBProject MsgBox "Het VBProject in " & objDocument.Name & _ " is beveiligd of heeft geen componenten!", _ vbInformation, "Verwijder alle macro's" Exit Sub End If With objDocument.VBProject For i = .VBComponents.Count To 1 Step -1 On Error Resume Next .VBComponents.Remove .VBComponents(i) ' delete the component On Error GoTo 0 Next i End With With objDocument.VBProject For i = .VBComponents.Count To 1 Step -1 l = 1 Bij Fout Hervatten Volgende l = .VBComponents(i).CodeModule.CountOfLines .VBComponents(i).CodeModule.DeleteLines 1, l' duidelijke regels Bij fout GoTo 0 Volgende i Eindig met End Sub