Hallo,
Karolus hat geschrieben:1. Nimm nicht für jede sub ein neues Modul.
2. gib deinen Modulen "sprechende" Namen, an denen man erkennen kann was darin getan wird. (z.B calc, calcfunctions, writer, etcpp. )
3. dito 2. gilt auch für die Namen von Sub's und Function's
4. Wenn in deinen Subs Codeblöcke in identischer Form mehrfach vorkommen lagere diese Blöcke in functions( ggf. mit Argumentübergabe) aus
5. Wenn du in mehreren Subs immer das "gleiche" tust siehe 4.
6. Speichere Dokument-spezifischen Code in eben diesem Dokument und müll dir damit nicht "meine Makros" zu.
1. habe ich bisher so gehandhabt, da mir sonst der Umfang zu groß wäre, allerdings werden es trotzdem ziemlich viele
2./3. kämpfe ich mit, versuche ich aber einzuhalten
4./5. so blöd es klingt, aber daran habe ich noch nicht gedacht; muß aber mal nachlesen, wie es mit der Gültigkeit von functions/subs ausschaut, d.h. ob ich auch functions/subs aus anderen Modulen/Dialogen/Bibliotheken aufrufen kann und wie dann die Gültigkeit der Parameter ist
6. grmpf.... ich kämpfe geschäftlich etwas mit der "Makrosicherheit", da diese auf "hoch" gestellt ist und eigentlich nicht geändert werden darf; Macros im Dokument werden leider deaktiviert, in "meine Makros" nicht
Danke Karolus für die Tipps!!
balu hat geschrieben:Hier mal ein paar Beispiele.
Mod1: Deklarieren und defenieren von Variablen, sowie vorinitialisieren von bestimmten Prozessen.
Mod2: Die Hauptaktion des Makros
Mod3: Datei öffnen und speichern Dialoge
Mod4: Eine einfache Captcha Erkennung
Und so weit wie es geht ist jedes Modul so aufgebaut, das dort der Ablauf, auch wenn er aus meherern SUBs besteht, der Reihe nach von oben nach unten gegliedert ist. Mit anderen Worten, wenn die Hauptprozedur (z.B. Sub Haupt) in einem Modul mehrere Unterprozeduren (Sub UnterEins ... Sub UnterSechs) beinhaltet, dann ordne ich diese Unterprozeduren von oben nach unten an.
Klingt auch alles sehr sinnvoll!
Mod1 überrascht mich etwas... was steht dann da??
z.B. Global oDoc = ThisComponent
Global oSheet = oDoc.Sheets.getByName("Tabelle1")
Aber ansonsten auch ein sehr guter Tip, den ich bisher nicht beachtet habe.
Ich sehe schon, ihr habt da System... da ist meines Chaos dagegen und teilweise sind die Macros kaum zu finden.