VBA Excel - Apagando todas as macros de uma planilha - Delete all macros in a workbook/document



As macros foram abandonadas a muito pela Microsoft, apesar de vermos exemplos delas nas novas versões do MS Access, tanto na versão 2007, quanto na 2010. Mesmo assim prefiro crer que permancem ativas apenas para motivo de compatibilidade com as versões anteriores. Mas não sou ingênuo nesse respeito.

Se você estiver atualizando a versão de um aplicativo, pode atualizá-lo retirando as macros com essa SUB.

Como posso deletar uma MACRO da minha aplicação ?

Sub RemoveAllMacros (objDocument As Object)
' deletes all VBProject components from objDocument
' removes the code from built-in components that can't be deleted
' use like this: RemoveAllMacros ActiveWorkbook ' in Excel
' or like this: RemoveAllMacros ActiveWorkbookDocument ' in Word
' requires a reference to the
' Microsoft Visual Basic for Applications Extensibility library

Dim i As Long, l As Long
    If objDocument Is Nothing Then Exit Sub
    Let i = 0
    On Error Resume Next
     Let  i = objDocument.VBProject.VBComponents.Count
    On Error GoTo 0
    If i < 1 Then ' no VBComponents or protected VBProject
        MsgBox "The VBProject in " & objDocument.Name & _
            " is protected or has no components!", _
            vbInformation, "Remove All Macros"
        Exit Sub
    End If

    With objDocument.VBProject
        For i = .VBComponents.Count To 1 Step -1
            On Error Resume Next
            .VBComponents.Remove .VBComponents(i)

            On Error GoTo 0
        Next i
    End With

    With objDocument.VBProject
        For i = .VBComponents.Count To 1 Step -1
             Let  l = 1
            On Error Resume Next
             Let  l = .VBComponents(i).CodeModule.CountOfLines
            .VBComponents(i).CodeModule.DeleteLines 1, l

            On Error GoTo 0
        Next i
    End With
End Sub

Tags: Bernardes, MS, Microsoft, Office, Excel, delete, erase, macro 


André Luiz Bernardes
A&A® - Work smart, not hard.



Nenhum comentário:

Postar um comentário

diHITT - Notícias