ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Slett alle makroer i en arbeidsbok/dokument

Når man vil slette alle makroer fra en arbeidsbok eller et dokument kan man benytte makroen nedenfor. Prosedyren kan benyttes både i Excel og Word uten noen redigering.

Sub RemoveAllMacros(objDocument As Object)
' sletter alle VBProject komponenter fra objDocument
' fjerner kode fra innebygde objekter som ikke kan slettes
' benyttes slik: RemoveAllMacros ActiveWorkbook ' i Excel
' eller slik: RemoveAllMacros ActiveDocument ' i Word
' krever en referanse til 
' Microsoft Visual Basic for Applications Extensibility biblioteket
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 ' ingen VBComponents eller beskyttet VBProject
        MsgBox "VBProsjektet i " & objDocument.Name & _ 
            " er beskyttet eller har ingen komponenter!", _
            vbInformation, "Fjern alle makroer"
        Exit Sub
    End If
    With objDocument.VBProject
        For i = .VBComponents.Count To 1 Step -1
            On Error Resume Next
            .VBComponents.Remove .VBComponents(i) ' slett komponenten
            On Error GoTo 0
        Next i
    End With
    With objDocument.VBProject
        For i = .VBComponents.Count To 1 Step -1
            l = 1
            On Error Resume Next
            l = .VBComponents(i).CodeModule.CountOfLines
            .VBComponents(i).CodeModule.DeleteLines 1, l ' fjern koden
            On Error GoTo 0
        Next i
    End With
End Sub

 

 

Dokumentet er sist oppdatert 2002-07-17 12:36:59      Utskriftsvennlig versjon

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2024    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse