Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alle Module mit VBA löschen

Alle Module mit VBA löschen
14.07.2006 11:02:05
Peter
Guten Tag
Zwecks Aufbereiten eines Workbooks habe ich in diesem verschiedene Makros integriert. Nun möchte ich die Datei von diesen "befreien", damit ich das Workbook versenden kann und der Empfänger nicht mit Makros(-Sicherheit) konfrontiert wird, da die Makros für ihn keine Bedeutung haben.
Kann das Löschen automatisiert werden?
Danke für Feedback.
Peter
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Module mit VBA löschen
14.07.2006 12:14:49
Dr.
Hi,
hilft Dir das als Ansatz weiter? Einfach über alle Blätter des Workbooks laufen lassen.
With ActiveSheet.Parent.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
.DeleteLines 1, .CountofLines
End With
AW: Alle Module mit VBA löschen
14.07.2006 12:39:05
Peter
Hallo Dr.
Irgendwie hat der Code nicht funktioniert und ich bin auch zuwenig Profi, um zu sehen, woran das liegt.
Ich habe auf http://www.jumper.ch/Artikel/215.htm#13 folgenden Code gefunden, der das Gewünschte bewerkstelligen sollte.
Wenn ich dies aber in ein Modul kopiere und laufen lasse, komt schon auf der ersten Zeile Dim VBComp As VBIDE.VBComponent
Die Fehlermeldung "Fehler biem Kompilieren: Benutzerdefinierter Typ nicht definiert".
Da bin ich wieder am Ende meines Lateins.
Kann mir jemand helfen?
Danke, Peter

Sub DeleteAllVBA()
Dim VBComp As VBIDE.VBComponent
Dim VBComps As VBIDE.VBComponents
Set VBComps = ActiveWorkbook.VBProject.VBComponents
For Each VBComp In VBComps
Select Case VBComp.Type
Case vbext_ct_StdModule, vbext_ct_MSForm, _
vbext_ct_ClassModule
VBComps.Remove VBComp
Case Else
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VBComp
End Sub

Anzeige
AW: Alle Module mit VBA löschen
14.07.2006 21:31:00
Kurt
Verweis auf die vb6ext.olb setzen.
mfg Kurt
AW: Alle Module mit VBA löschen
15.07.2006 18:14:34
Peter
Hallo Kurt
Mir ist nicht klar, wo ich "vb6ext.olb" einsetzen muss und meine Versuche endeten erfolglos. Kann ich ein paar weitere Erklärungen dazu haben?
Danke, Peter
AW: Alle Module mit VBA löschen
15.07.2006 21:41:16
Kurt
Hi,
im VBA-Editor unter Extras, Verweise den Eintrag
Microsoft Visual Basic 6.0 Extensibility
anhaken und ok klicken.
mfg Kurt
Anzeige
AW: Alle Module mit VBA löschen
17.07.2006 16:22:31
Peter
Hallo Kurt
Bei mir heisst der Verweis Microsoft Visual Basic for Applications Extensibility 5.3
Auch nach dem Aktivieren dieses Verweises erscheint die Fehlermeldung:
Zeile: Set VBComps = ActiveWorkbook.VBProject.VBComponents
Fehler: Laufzeitfehler '1004': Der programmatische Zugriff auf das Visualb Basic-Projekt ist nicht sicher
Ist dieses Problem lösbar?
Oder müsste ich die Makros einer bestimmten Datei aus einer anderen Datei heraus löschen?
Danke für Feedback.
Peter
Anzeige
AW: Alle Module mit VBA löschen
17.07.2006 16:33:45
Kurt
Hi,
du musst im Menü Extras, Makro, Sicherheit, Vertrauenswürdige Quellen den Haken bei
Zugriff auf Visual Basic Projekt vertrauen setzen.
mfg Kurt
AW: Alle Module mit VBA löschen
17.07.2006 17:02:19
peter
Hallo Kurt
Super!
Jetzt klappts.
Vielen Dank, Peter
AW: Alle Module mit VBA löschen
17.07.2006 17:02:58
peter
Hallo Kurt
Super!
Jetzt klappts.
Vielen Dank, Peter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Alle Module mit VBA löschen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu starten.

  2. Verweise aktivieren: Gehe zu Extras > Verweise und aktiviere den Eintrag für Microsoft Visual Basic for Applications Extensibility 5.3.

  3. Sicherheitsoptionen anpassen: Navigiere zu Extras > Makro > Sicherheit und setze den Haken bei Zugriff auf das Visual Basic-Projekt vertrauen.

  4. Code einfügen: Kopiere den folgenden VBA-Code in ein neues Modul:

    Sub DeleteAllVBA()
       Dim VBComp As VBIDE.VBComponent
       Dim VBComps As VBIDE.VBComponents
       Set VBComps = ActiveWorkbook.VBProject.VBComponents
       For Each VBComp In VBComps
           Select Case VBComp.Type
               Case vbext_ct_StdModule, vbext_ct_MSForm, vbext_ct_ClassModule
                   VBComps.Remove VBComp
               Case Else
                   With VBComp.CodeModule
                       .DeleteLines 1, .CountOfLines
                   End With
           End Select
       Next VBComp
    End Sub
  5. Makro ausführen: Führe das Makro aus, um alle Module in deinem Workbook zu löschen.


Häufige Fehler und Lösungen

  • Fehlermeldung: Benutzerdefinierter Typ nicht definiert: Stelle sicher, dass du den richtigen Verweis (Microsoft Visual Basic for Applications Extensibility 5.3) aktiviert hast.

  • Laufzeitfehler '1004': Der programmatische Zugriff auf das Visual Basic-Projekt ist nicht sicher: Überprüfe, ob du den Zugriff auf das Visual Basic-Projekt in den Sicherheitseinstellungen aktiviert hast.

  • Code funktioniert nicht: Achte darauf, dass du das Makro im richtigen Kontext ausführst und dass keine anderen VBA-Projekte gleichzeitig geöffnet sind.


Alternative Methoden

Falls du kein Makro verwenden möchtest, kannst du auch manuell die VBA-Module löschen:

  1. Öffne den VBA-Editor (ALT + F11).
  2. Klicke mit der rechten Maustaste auf das Modul, das du löschen möchtest.
  3. Wähle Entfernen [Modulname] aus dem Kontextmenü.
  4. Bestätige das Löschen.

Diese Methode ist jedoch nicht automatisiert und kann in großen Projekten zeitaufwendig sein.


Praktische Beispiele

Wenn du das Workbook bereiten möchtest, um es an jemanden zu senden, ist das Löschen der VBA-Module oft erforderlich. Mit dem oben genannten VBA-Skript kannst du alle Module in einem Rutsch entfernen, was Zeit spart.

Hier ist ein Beispiel eines Moduls, das du löschen könntest:

  • Standardmodul: Enthält allgemeine Funktionen und Subroutinen, die du möglicherweise nicht mehr benötigst.

Tipps für Profis

  • Backup erstellen: Bevor du VBA-Module löschst, erstelle immer ein Backup deiner Datei.
  • Makros testen: Führe das Makro zuerst in einer Testumgebung aus, um sicherzustellen, dass es wie gewünscht funktioniert.
  • Sicherheitseinstellungen: Denke daran, die Sicherheitseinstellungen nach dem Löschen der Module erneut zu überprüfen, um ungewollte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich VBA-Module aus einer anderen Datei löschen?
Ja, du kannst die Module aus einer anderen Datei löschen, indem du das Workbook öffnest und den gleichen Code anwendest. Achte darauf, den richtigen Workbook-Kontext zu verwenden.

2. Was passiert, wenn ich ein Modul versehentlich lösche?
Wenn du ein Modul löschst, sind alle darin enthaltenen Codes und Funktionen verloren. Stelle sicher, dass du ein Backup hast, um wichtige Daten wiederherzustellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige