Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

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.

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 in any place.
Skype: inanyplace 


eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine