AW: Makros per VBA deaktivieren
01.10.2004 13:08:58
thommy1966
Hallo,
ich habe dazu bei Spotligt von GraFi folgenden Code gefunden:
' Code in das erste Tabellenblatt (nach "DieseArbeitsmappe"), da der Löschvorgang
' in der Richtung "letzten Tabelle" zur "ersten Tabelle verläuft". Zuerst "Module",
' dann "Userformen" und zuletzt "Ereignisprozeturen (Code in einem Tabellenblatt) löschen"
'Diese Prozedur zum Löschen aufrufen
Sub Alles_löschen()
Call Lösche_Module
Call Lösche_Userformen
Call Lösche_Ereignisprozeduren
End Sub
Sub Lösche_Module()
'Löscht Module:
For n = ThisWorkbook.VBProject.vbComponents.Count To 1 Step -1
If ThisWorkbook.VBProject.vbComponents(n).Type = 1 Then
ThisWorkbook.VBProject.vbComponents(n).Collection.Remove ThisWorkbook.VBProject.vbComponents(n)
End If
Next
End Sub
Sub Lösche_Userformen()
'Löscht Userforms:
For n = ThisWorkbook.VBProject.vbComponents.Count To 1 Step -1
If ThisWorkbook.VBProject.vbComponents(n).Type = 3 Then
ThisWorkbook.VBProject.vbComponents(n).Collection.Remove ThisWorkbook.VBProject.vbComponents(n)
End If
Next
End Sub
Sub Lösche_Ereignisprozeduren()
'Löscht Ereignisprozeduren:
For n = ThisWorkbook.VBProject.vbComponents.Count To 1 Step -1
For i = 1 To ThisWorkbook.VBProject.vbComponents(n).CodeModule.CountOfLines
If ThisWorkbook.VBProject.vbComponents(n).Type <> 1 And ThisWorkbook.VBProject.vbComponents(n).Type <> 3 Then _
ThisWorkbook.VBProject.vbComponents(n).CodeModule.DeleteLines 1
Next
Next
End Sub
siehe:http://spotlight.de/nzforen/mse/m/mse-1096392200-7311.html
Bei mir hats funktioniert.
gruß thommy1966