Jeśli pracujesz z niezliczonymi makrami i chcesz, aby makro usuwało wszystkie istniejące kody z bieżącego skoroszytu programu Excel, poniższy artykuł z pewnością pomoże.
Jeśli chcesz usunąć wszystkie makra ze skoroszytu lub dokumentu, możesz użyć poniższego makra.
Procedurę można stosować zarówno w programie Excel, jak i Word bez żadnej edycji.
Sub RemoveAllMacros(objDocument As Object) ' usuwa wszystkie komponenty VBProject z objDocument ' usuwa kod z wbudowanych komponentów, których nie można usunąć ' użyj tak: RemoveAllMacros ActiveWorkbook ' in Excel ' lub tak: RemoveAllMacros ActiveWorkbookDocument ' in Word ' wymaga odniesienia do biblioteki Microsoft Visual Basic for Applications Extensibility Dim i As Long, l As Long Jeśli objDocument jest niczym, to Exit Sub i = 0 W przypadku błędu Wznów Dalej i = objDocument.VBProject.VBComponents.Count w przypadku błędu GoTo 0 Jeśli i < 1 Then ' no VBComponents lub VBProject MsgBox "VBProject w " & objDocument.Name & _ " jest chroniony lub nie ma komponentów!", _ vbInformation, "Remove All Macros" Exit Sub End If With objDocument.VBProject For i = .VBComponents.Count To 1 Krok -1 W przypadku błędu Wznów Dalej .VBComponents.Remove .VBComponents(i) ' usuń komponent W przypadku błędu GoTo 0 Dalej i Zakończ z objDocument.VBProject For i = .VBComponents.Count To 1 Krok -1 l = 1 w przypadku wznowienia błędu Next l = .VBComponents(i).CodeModule.CountOfLines .VBComponents(i).CodeModule.DeleteLines 1, l ' wyczyść linie On Error GoTo 0 Next i End With End Sub