Discussion:
VBA-Module aufräumen und löschen
(zu alt für eine Antwort)
Frank Vellner
2007-03-30 08:23:41 UTC
Permalink
Hallo,

bei mir hat sich im Laufe der Jahre ein ziemliches Modul-Chaos in der
Personl.xls gebildet. Ständig kommen irgenwie welche dazu, einige
enthalten viele, andere ein, andere kein Makro...

Ich würde da gerne ein bischen aufräumen. Mir ist allerdings das
Organisationsprinzip nicht klar. Ich betrachte einfach mal ein Projekt
als übergeordnete Struktur die Module enthält in denen Makros sind. Nun
wäre es ja vielleicht ein Weg, zu einem "Problemkreis" ein Modul zu
haben, in dem alle Makros aus diesem Bereich sind.

Leider habe ich noch keine Möglichkeit gefunden, den Modulen sinnvolle
Namen zu geben. Die heissen einfach Modul1... . Vielleich ist es
sinnvoll, in einem ersten Schritt alle leeren Module zu löschen und
alle die nur ein Makro enthalten, zusammenzufassen. Kann irgendetwas
"schlimmes" passieren, wenn man einen VBA-Code per copy/paste in einem
anderen Modul hinzufügt (natürlich alles zwischen Sub und "End Sub)?
Oder wie räumt man auf?

Viele Grüße
Frank
stefan onken
2007-03-30 09:15:10 UTC
Permalink
hallo Frank,
zum Umbenennen eines Moduls: klicke eines im Projekt-Explorer (das ist
der oben links im VBA-Editor) an, dann findest du im Eigenschaften-
Fenster (üblichwerweise unter dem Projekt-Explorer, ggfls mit F4
einblenden) die Eigenschaft (Name). Dort kannst du einen anderen Namen
eintippen.

Zum kopieren von Makros: eigentlich sollte nichts passieren, solange
du alles inkl. Sub und End Sub verschiebst, das Makro nicht zwischen
Sub/End Sub eines bereits vorhandenen Makro kopierst und du das Makro
zwischen 2 Modulen (und nicht in eines der Tabellen-Module)
verschiebst.

Gruß
stefan
Post by Frank Vellner
Hallo,
bei mir hat sich im Laufe der Jahre ein ziemliches Modul-Chaos in der
Personl.xls gebildet. Ständig kommen irgenwie welche dazu, einige
enthalten viele, andere ein, andere kein Makro...
Ich würde da gerne ein bischen aufräumen. Mir ist allerdings das
Organisationsprinzip nicht klar. Ich betrachte einfach mal ein Projekt
als übergeordnete Struktur die Module enthält in denen Makros sind. Nun
wäre es ja vielleicht ein Weg, zu einem "Problemkreis" ein Modul zu
haben, in dem alle Makros aus diesem Bereich sind.
Leider habe ich noch keine Möglichkeit gefunden, den Modulen sinnvolle
Namen zu geben. Die heissen einfach Modul1... . Vielleich ist es
sinnvoll, in einem ersten Schritt alle leeren Module zu löschen und
alle die nur ein Makro enthalten, zusammenzufassen. Kann irgendetwas
"schlimmes" passieren, wenn man einen VBA-Code per copy/paste in einem
anderen Modul hinzufügt (natürlich alles zwischen Sub und "End Sub)?
Oder wie räumt man auf?
Viele Grüße
Frank
unknown
2007-03-30 12:57:11 UTC
Permalink
Post by Frank Vellner
Hallo,
bei mir hat sich im Laufe der Jahre ein ziemliches Modul-Chaos in der
Personl.xls gebildet. Ständig kommen irgenwie welche dazu, einige
enthalten viele, andere ein, andere kein Makro...
Ich würde da gerne ein bischen aufräumen. Mir ist allerdings das
Organisationsprinzip nicht klar. Ich betrachte einfach mal ein Projekt
als übergeordnete Struktur die Module enthält in denen Makros sind. Nun
wäre es ja vielleicht ein Weg, zu einem "Problemkreis" ein Modul zu
haben, in dem alle Makros aus diesem Bereich sind.
Leider habe ich noch keine Möglichkeit gefunden, den Modulen sinnvolle
Namen zu geben. Die heissen einfach Modul1... . Vielleich ist es
sinnvoll, in einem ersten Schritt alle leeren Module zu löschen und
alle die nur ein Makro enthalten, zusammenzufassen. Kann irgendetwas
"schlimmes" passieren, wenn man einen VBA-Code per copy/paste in einem
anderen Modul hinzufügt (natürlich alles zwischen Sub und "End Sub)?
Oder wie räumt man auf?
Viele Grüße
Frank
Betrachte die Module einfach als Container in denen die Makros gesammelt
werden.
Während im Dateisystem in den Ordnern Ordner und explizite Dateien
stecken hast du hier nur Schenllhfter mit einem endlos langen Blatt drin
auf dem Der Code simpel der Reihe nach steht, nur eben durch die
einleitende SUB und die beendende END SUB abgegrenzt.

Ich für mich sotiere einfach thematisch.
Etwa für eine bestimmte Anwendung die ich nicht zwischen den allgmeinen,
genralisierten Makros haben will. Ich gebe zu, dass auch das nicht ein
Wunder an Übersicht ist.

Jedenfalls kannst du dir genug Schnellhefter erstellen und wie Stefan
beschrieb Makro für Makro nach Wunsch ablegen. Die einzige Gemeinheit
kann das sein, dass zufällig der selbe Name für die Sub bzw. Function
verwendet wurde und dann Verwirrung stiftet.
Im Gegensatz zu Word terennt Excel nur die Mappen ab, alle Makros in
einer Mappe werden ohne einen Präfix eines Modulnamens angeboten wenn du
Makros einer Schaltfläche zuweist. Also ist hier einfach
Aufmerksamkeit gefordert.
--
Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
"Die Geschichte ist der beste Lehrmeister - mit den unaufmerksamsten
Schülern." Indira Gandhi
Michael v. Fondern
2007-03-30 21:50:42 UTC
Permalink
Post by Frank Vellner
Leider habe ich noch keine Möglichkeit gefunden, den Modulen sinnvolle
Namen zu geben. Die heissen einfach Modul1...
Weisst du nicht, wie du den Namen eines Modul änderst, oder wie du ihn
sinnvoll wählst? In letzterem Fall würde ich dir raten, dich ein wenig
mit objektorientierter Programmierung auseinanderzusetzen.
Post by Frank Vellner
. Vielleich ist es
sinnvoll, in einem ersten Schritt alle leeren Module zu löschen und
alle die nur ein Makro enthalten, zusammenzufassen. Kann irgendetwas
"schlimmes" passieren, wenn man einen VBA-Code per copy/paste in einem
anderen Modul hinzufügt (natürlich alles zwischen Sub und "End Sub)?
Du solltest darauf achten, dass Funktionen verschiedener Module sich
nicht wechselseitig aufrufen, oder überhaupt Teile (z.B. Typen,
Konstanten) in Modul1 deklariert und in Modul 2 benutzt werden, wenn
gleichzeitig in Modul2 Funktionen sind, die Modul1 aufruft ("zyklische
Abhängigkeiten" nennt man so was). Nach jedem Umkopieren solltest du
zudem "Debuggen / Compilieren" aufrufen, dann kann eigentlich nicht viel
schiefgehen.
Post by Frank Vellner
Oder wie räumt man auf?
Ein recht umfassendes Buch zu dem Thema ist "Refactoring" von Martin
Fowler. Hat zwar seinen Schwerpunkt im objektorientierten, aber
mindestens die Hälfte des Buchs kann man auch auf Excel-VBA anwenden.

Grüße

- Michael -

Loading...