Elimina tutte le macro in una cartella di lavoro/documento utilizzando VBA in Microsoft Excel

Anonim

Se stai lavorando con innumerevoli macro e desideri che una macro cancelli tutti i codici esistenti dall'attuale cartella di lavoro di Excel, il seguente articolo sarà sicuramente di aiuto.

Quando si desidera eliminare tutte le macro da una cartella di lavoro o da un documento, è possibile utilizzare la macro di seguito.
La procedura può essere utilizzata sia in Excel che in Word senza alcuna modifica.

Sub RemoveAllMacros(objDocument As Object) ' elimina tutti i componenti VBProject da objDocument ' rimuove il codice dai componenti incorporati che non possono essere eliminati ' usa in questo modo: RemoveAllMacros ActiveWorkbook ' in Excel ' o in questo modo: RemoveAllMacros ActiveWorkbookDocument ' in Word ' richiede un riferimento alla libreria ' Microsoft Visual Basic, Applications Extensibility 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 Then ' no VBComponents o protetto VBProject MsgBox "Il VBProject in " & objDocument.Name & _ " è protetto o non ha componenti!", _ vbInformation, "Rimuovi tutte le macro" Esci da Sub End If With objDocument.VBProject For i = .VBComponents.Count A 1 Passaggio -1 In caso di errore Riprendi Avanti .VBComponents.Remove .VBComponents(i) ' Elimina il componente In caso di errore Vai a 0 Avanti i Termina con objDocument.VBProject Per i = .VBComponents.Count A 1 Passaggio -1 l = 1 In caso di errore Riprendi Next l = .VBComponents(i).CodeModule.CountOfLines .VBComponents(i).CodeModule.DeleteLines 1, l ' cancella le righe On Error GoTo 0 Next i End With End Sub