Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador erase. Mostrar todas as postagens
Mostrando postagens com marcador erase. Mostrar todas as postagens

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.



VBA Excel - Delete uma procedure específica dentro do módulo - Delete a procedure from a module using VBA


Dificilmente as senhas das planilhas hoje não são quebradas com grande facilidade, poucos de nós sabemos resguardar a segurança dos nossos códigos, que afinal de contas são resultado do nosso suor em codificar, decodificar e criar um algoritmo que atenda aos nossos clientes. Como nos proteger?

Não me perguntem o motivo de aprender a fazer isso, se você nunca pensou em fazê-lo é porque ainda está distante de merecer utilizá-lo.

Como posso deletar uma procedure dentro de um módulo na minha aplicação utilizando o VBA?

Sub DelProc (ByVal wb As Workbook, ByVal DeleteFromModuleName As String, ByVal ProcedureName As String)

Dim VBCM As CodeModule, ProcStartLine As Long, ProcLineCount As Long

On Error Resume Next

Set VBCM = wb.VBProject.VBComponents(DeleteFromModuleName).CodeModule

If Not VBCM Is Nothing Then
Let ProcStartLine = 0
Let ProcStartLine = VBCM.ProcStartLine(ProcedureName, vbext_pk_Proc)
 
If ProcStartLine > 0 Then ' prosedyren finnes, slett den
 
Let ProcLineCount = VBCM.ProcCountLines(ProcedureName, vbext_pk_Proc)
 
VBCM.DeleteLines ProcStartLine, ProcLineCount
 
End If
 
Set VBCM = Nothing
 
End If
 
On Error GoTo 0
End Sub

Tags: Bernardes, MS, Microsoft, Office, Excel, delete, erase, module, procedure, function

André Luiz Bernardes
A&A® - Work smart, not hard in any place.
bernardess@gmail.com

diHITT - Notícias