48. Verschiedene Varianten zum Löschen von Makros bzw. VBA Code

Aufgabenstellung:

Es sollten durch Makros VBA Code, Ereignisprozeduren in Tabellenblattprojekten, UserFormen oder Makros gelöscht werden.

Diese Beispiele stehen auch als Beispieldatei zum Download zur Verfügung.


Realisiert wurde das durch eine VBA-Lösung.

Beispiel 1: Es sollten alle in einer Datei befindlichen VBA Code bzw. Makros gelöscht werden.

Der Code ist in ein StandardModul einzufügen und sollte über eine Befehlsschaltfläche aufgerufen werden.


Sub 
Alle_VBA_Code_löschen()
'Alle Module, UserFormen und Ereignisprozeduren in den Tabellenblättern
'werden gelöscht
Dim VBA_Code As Object
With ActiveWorkbook.VBProject
For Each VBA_Code In .vbComponents
Select Case VBA_Code.Type
Case 1, 2, 3: .vbComponents.Remove .vbComponents(VBA_Code.Name)
Case 100
With VBA_Code.CodeModule
    .DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
End Sub

 

 

Beispiel 2: Es sollten einzelne Makros gelöscht werden.

Der Code ist in ein StandardModul einzufügen und sollte über eine Befehlsschaltfläche aufgerufen werden.


Sub 
Einzelne_Module_löschen()
'Es werden die kompletten Module "Zeilen_in_Code_löschen" und
'"Alle_Code_löschen" gelöscht
'Haben die Module andere Namen muss dieser eingesetzt werden.
With Application.VBE.ActiveVBProject
.vbComponents.Remove .vbComponents("Codezeilen_löschen")
.vbComponents.Remove .vbComponents("Alle_Code_löschen")
End With
End Sub

 

Beispiel 3: Es sollten einzelne Zeilen in einem Makro gelöscht werden.

Der Code ist in ein StandardModul einzufügen und sollte über eine Befehlsschaltfläche aufgerufen werden.


Sub Einzelne_Codezeilen_löschen()
'löscht 5 Zeilen des Codes in diesem Modul ab Zeile 1
Application.VBE.ActiveVBProject.vbComponents("Codezeilen_löschen") _
.CodeModule.DeleteLines 1, 5
End Sub

 

 

Beispiel 4: Es sollten alle Makros in einer Datei gelöscht werden.

Der Code ist in ein StandardModul einzufügen und sollte über eine Befehlsschaltfläche aufgerufen werden.


Sub 
Alle_Module_löschen()
'Es werden die Anzahl der vorhandenen Module ermittelt
'und dann der Reihe nach gelöscht.
For Modulanzahl = ThisWorkbook.VBProject.vbComponents.Count To Step -1
If ThisWorkbook.VBProject.vbComponents(Modulanzahl).Type = 1 Then
ThisWorkbook.VBProject.vbComponents(Modulanzahl).Collection.Remove _
ThisWorkbook.VBProject.vbComponents(Modulanzahl)
End If
Next
End Sub

 

Beispiel 5: Es sollten alle UserFormen in einer Datei gelöscht werden.

Der Code ist in ein StandardModul einzufügen und sollte über eine Befehlsschaltfläche aufgerufen werden.


Sub 
Alle_Userformen_löschen()
'Es wird die Anzahl der UserForm ermittelt und die UserFormen werden gelöscht
For UserFormanzahl = ThisWorkbook.VBProject.vbComponents.Count To Step -1
If ThisWorkbook.VBProject.vbComponents(UserFormanzahl).Type = 3 Then
ThisWorkbook.VBProject.vbComponents(UserFormanzahl).Collection.Remove _
ThisWorkbook.VBProject.vbComponents(UserFormanzahl)
End If
Next
End Sub

 

Beispiel 6: Es sollten alle Ereignisprozeduren eines Tabellenblattes gelöscht werden.

Der Code ist in ein StandardModul einzufügen und sollte über eine Befehlsschaltfläche aufgerufen werden.


Sub 
Alle_VBA_Code_in_Tabellenblättern_löschen()
'Es wird die Anzahl der Tabellenblattprozeduren ermittelt und die vorhandenen
'VBA Code gelöscht
For Blattanzahl = ThisWorkbook.VBProject.vbComponents.Count To Step -1
For Codezeilenanzahl = 1 To ThisWorkbook.VBProject.vbComponents(Blattanzahl).CodeModule.CountOfLines
If ThisWorkbook.VBProject.vbComponents(Blattanzahl).Type <> 1 _
And ThisWorkbook.VBProject.vbComponents(Blattanzahl).Type <> 3 Then _
ThisWorkbook.VBProject.vbComponents(Blattanzahl).CodeModule.DeleteLines 1
Next
Next
End Sub

 


Dieses Beispiel wurde unter den in der Tabelle aufgeführten Versionen getestet.

  A B C D E
1        

2

 

Excel - Version

Getestet

 
3      
4   Excel 2007 12.0 a  
5   Excel 2003 11.0 a  
6   Excel 2002 10.0 a  
7   Excel 2000 9.0 a  
8   Excel 97 8.0    
9          
10   Anzahl der Downloads:

 
11          
12   Dieses Beispiel wurde bereits  x aufgerufen.  
13    
14          

 


> Beispieldatei herunterladen <

  Sollten beim Ausführen der Beispieldatei Fehler auftreten, bitte ich darum, mir eine Mail mit der Fehlerbeschreibung an fehler@excelbeispiele.de zu schicken.
Danke!

 Möchten Sie www.excelbeispiele.de in Ihre Favoriten aufnehmen? Dann Klicken Sie hier.
 

Kontakt:

letzte Aktualisierung am 06.01.2008

© 2004 - Copyright Oliver Scheckelhoff,
All Rights Reserved