Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1508to1512
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code Cleaner sinnvoll?

Code Cleaner sinnvoll?
11.08.2016 14:57:42
Michael
Hi zusammen,
ich bin die Tage auf Programmierer/Autoren gestoßen, die das "Cleanen" von Code propagieren bzw. Utilities dafür anbieten.
Im Prinzip heißt es, daß größere VBA-Projekte instabil werden können, und daß die Abhilfe sei, alle Code-Module als Text zwischenzuspeichern, in der Datei zu entfernen und sie hinterher wieder zu importieren.
Die Quellen sind teils schon älter (XL97-2003) - trifft das auf neuere Versionen noch zu?
Recherche: Excel vba code cleaner
trifft u.a. http://www.appspro.com/Utilities/CodeCleaner.htm
(die stellen besagte Behauptung auf)
wobei http://www.add-ins.com/macro-products-for-Microsoft-Excel/ways-to-repair-vba-code/how-to-fix-vba-code.htm
eher von der Installation eines COM-Add-Ins abrät.
Was meint Ihr?
Schöne Grüße,
Michael

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code Cleaner sinnvoll?
11.08.2016 15:30:20
Daniel
Hi
es kann schon sein, dass Excelprogramme "buggy" werden und dann gelegentlich abstürzen.
dann kann es durchaus sinnvoll sein, die Datei nochmal komplett von vorne aufzubauen, dh in eine neue leere Datei nacheinander Daten und Formeln, Formate, Namen usw hinein zu kopieren oder neu zu erstellen.
mit 2003 hatte ich das Problem gelegentlich, aber mit Excel 2010 jetzt nicht mehr, da läuft eigentlich alles stabil.
um die Makros als Text zuwischenzuspeichen, kannst du auch einfach im Projektexplorer auf das Modul mit der rechten Maustaste klicken und es exportieren, dann wird es als Textdatei mit dem Zusatz ".Bas" gespeichert.
genauso einfach kann man sie dann in eine Datei importieren.
Da braucht man jetzt nicht unbedingt ein Extra Tool, das geht auch so, nur wenn man sein Projekt in viele einzelne Module gesplittet hat oder viele Userformen verwendet, ist das dann eine fleißaufgabe, weil jede Userform und jedes Modul einzeln gespeichert werden muss (und die Tabellenblattmodule sollte man nicht vergessen).
da sowas eher selten vorkommt, braucht man auch nicht extra ein AddIn (von dem man auch nicht so genau weiß, was es sonst noch macht), sondern investiert halt den halben Tag, wenns tatsächlich mal knallt mit dem Neuaufbau der Datei.
Oder man schreib sich selber ein paar kleine Tools, die einem dann beim wiederaufbau helfen (z.B. das erstellen einer Auflistung der verwendeten Excelnamen)
Gruß Daniel
Anzeige
AW: Code Cleaner sinnvoll?
11.08.2016 16:06:49
Michael
Hi Michael und Daniel!
von dem man auch nicht so genau weiß, was es sonst noch macht
Wie ich den Michael kenne, dürfte er auf genau diesen Umstand am meisten ansprechen ;-).
Ich kann bzgl. dem Umstand, dass VBA-Projekte buggy werden, nicht allzuviel beitragen, da ich kaum *große* Projekte umsetze, und meist nur kleinere, spezifische Aufgaben mit VBA löse. Aber zu dem oben zitierten Punkt denke ich auch, dass es sich entweder nicht lohnt, oder man sich sowas notfalls auch selber basteln kann. Fall's Du das noch nicht recherchiert hast Michael, hier mal Startpunkte für das Thema VBA-Komponenten exportieren, bei Ron de Bruin ist sogar das Importieren vertreten.
http://www.rondebruin.nl/win/s9/win002.htm
https://gist.github.com/steve-jansen/7589478
http://www.ozgrid.com/forum/showthread.php?t=69333
http://www.chf-online.de/vba/vbaexportmakros.htm
https://www.experts-exchange.com/articles/1457/Automate-Exporting-all-Components-in-an-Excel-Project.html
Der von Dir verlinkte CodeCleaner ist im Übrigen von Rob Bovey soweit ich das sehe - ein (altgedienter?) MS Excel MVP, der mir häufig unterkommt - da würd ich grds. davon ausgehen, dass das ein sauberes Add-In ist, aber wo Daniel Recht hat, hat er Recht...
Soweit mein Senf dazu, bin auch schon wieder raus, aus genannter Erfahrungslosigkeit mit diesem "Problem"!
LG an alle
Michael
Anzeige
AW: Code Cleaner sinnvoll?
11.08.2016 17:17:06
Luschi
Hallo Excel-Fan's,
ich habe mir auf der Basis von http://www.rondebruin.nl/win/s9/win002.htm ein eigenes AddIn zum Problem Ex-/Import von Vba-Modulen erstellt.
Leider hat Ron de Bruin den Ex-/Import der Tabellen-/Arbesmappen-Klassenmodule nicht behandelt.
Da mußte ich ein bischen nacharbeiten und rumexperementieren.
Diese Event-Klassenmodule darf man nämlich nicht IMPORTIEREN, denn dann wird ein Klassenmodul-Ordner aufgemacht und sie dahinein geschrieben. Hier ist der Befehl 'CodeModule.AddFromFile' erforderlich.
Aus diesem Grunde benenne ich den Dateityp für diese Klassenmodule beim Exportieren um in *.clsX
Zu erkennen ist dieser Modultyp an der Kennnung ' vbext_ct_Document' bzw, '100'.
Bevor die Module wieder eingelesen werden, passiert noch Folgendes:
- externe Vba-Referenzen löschen
- vba-lose Datei speichern-schließen-öffnen-speichern-schließen öffnen
Jetzt Module/Formulare einlesen und fehlende Referenzen neu erstellen
So etwas mache ich grundsätzlich, bevor die Final-Datei an den Kunden ausgeliefert wird.
Dabei schmeiße ich dann beim Wiedereinlesen die Leerzeilen, strukturbedingte Leerzeichen am Beginn des Codes und die Kommentare raus.
Zur Zeit ist das noch ein normales Excel-AddIn. Bin aber gerade dabei, daraus ein COM-Add-In mit C# 6.0 zu erstellen.
allg. Vorteile:
- Excel-Datei wird kleiner (rd. 1,5 MByze bei mittleren Projekten)
- gefühlsmäßig läuft der Vba-Code ein bischen schneller
- Setzen des Vba-KW-Schutzes ist in der EinleseRoutine integriert
- bei VIP-Kunden wird das Projekt auch noch signiert
Gruß von Luschi
aus klein-Paris
Anzeige
Wer kann, der kann ;-)! Stark! owT
11.08.2016 17:30:05
Michael
vielen Dank für Eure Anregungen
11.08.2016 17:47:49
Michael
Hi zusammen,
tja, wie Michael (m) vermutet hat, weiß ich wirklich nicht, was Rob Bovey treibt, MVP hin oder her...
Ich habe gerade mal mein größtes Projekt zusammengezählt: rund 2500 Zeilen (incl. zu entfernender Müll aus Subs, die ich kopiert habe, bevor ich größere Änderungen darin vorgenommen habe) auf rund 10 Module verteilt: das ganze Ding hat nur insgesamt 350 KB, da lassen sich schwerlich 1,5 MB einsparen.
Aber gut: Luschis Antwort entnehme ich, daß es Sinn macht, sich damit zu befassen, in welcher Form auch immer - auch wenn ich (wie Daniel) eigentlich noch keine "seltsamen Effekte" beobachtet habe (XL2007 - hin und wieder speichere ich mal was in XL2000-Format ab: da läuft es eigentlich auch brav).
Am Rande: COM-Addin mit C# - das geht ja prinzipiell dann auch in VB; nur: ist dazu eine bestimmte VS-Version nötig oder geht das auch mit der freien Version (express)?
Schöne Grüße,
Michael
Anzeige
nochmal danke an snb
13.08.2016 14:41:28
Michael
Hi,
bist Du der snb, der die Seite unter dem link betreibt?
Falls ja, mein Kompliment: der eine oder andere Text (z.B. zu dictionary) hat mir bereits schwer auf die Sprünge geholfen!
Danke und schöne Grüße,
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige