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 1 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 1 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 1 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 |
|
|
|
|
|
|