Seite 1 von 1
Maximallänge bei makros?
Verfasst: So, 28.12.2008 20:32
von gurkende_gurke
Hallo
Mein Problem ist folgendes: ich habe ein ziemlich umständliches Makro geschrieben, das vielleicht zu lang geworden ist. Jedenfalls habe ich die Hälfte des Makrocodes in einer worddatei bearbeitet, und wenn ich diese der anderen Makrohälfte hinzufüge kommt folgende Fehlermeldung:
"der eingegebene Text ist länger als die zulässige maximale Länge für dieses Textfeld! der Text wurde abgeschnitten!"
woraufhin nur ein zwanzigstel des Textes eingefügt wird. Danach kann ich auch keinen Text mehr reinkopieren, sondern nur noch tippen... Irgendeine Lösung? ich kann auch mein Makro posten, nur glaube ich, das es zu lang ist

Vielen Dank schonmal für jede Hilfe
Re: Maximallänge bei makros?
Verfasst: So, 28.12.2008 21:42
von hawkhunter2002
Hallo Gurke ?!
Also (Basic) Makros werden in Modulen verwaltet, die in Bibliotheken organisiert sind.
Eine Bibliothek kann 16.000 Module aufnehmen (sollte reichen) und ein Modul kann eine Größe von 64 kB (sprich 64000 Zeichen)besitzen - was wahrscheinlich bei dir überschritten ist. Organisiere dein(e) Makro(s) doch in mehrerern Modulen, dann sollte auch einem größeren Projekt nichts im Wege stehen.
Gruß
Hawk
Re: Maximallänge bei makros?
Verfasst: Mo, 29.12.2008 13:13
von gurkende_gurke
Gute Idee
Nur das Problem ist, es ist
ein Makro... kann man ein Makro in mehrere Module aufteilen? wenn ja, wie?
Vielen Dank schonmal

Re: Maximallänge bei makros?
Verfasst: Mo, 29.12.2008 15:47
von Charly
Hallo Gurke!
Ein Makro kann geteilt und auf verschiedene Module verteilt werden.
Durch ein Hauptmakro können die einzelnen Teile gestartet und gesteuert werden. Einfach den Namen der Subroutine oder Funktion wie einen Befehl eingeben.
Geprüft werden muss welche Variablen die Teile gemeinsam haben. Diese müssen dann als Public oder Global (siehe OpenOffice-Hilfe) deklariert werden.
Alternativ können die Daten auch als Parameter ausgetauscht werden. Mit Funktionen erhält man z.B. Auch Rückgabewerte.
Gruß
Charly
Re: Maximallänge bei makros?
Verfasst: Mo, 29.12.2008 18:43
von gurkende_gurke
das ist schonmal gut

geht das teilen eines Makros auch innerhalb einer Do ... Loop While Schleife? weil so gut wie mein ganzes Makro aus einer solchen Schleife besteht. Wenn ja, könnte ich ein Beispiel haben wie man durch ein Hauptmakro 2 Makros verbindet? Ich könnte mein Makro auch posten, bräuchte dafür aber mehr als einen post, weil es halt zu viele Zeichen sind...
Gruß
gurke
Re: Maximallänge bei makros?
Verfasst: Mo, 29.12.2008 21:12
von Charly
Hallo Gurke!
Man kann von überall in eine Sub oder Functionsprozedur springen. Nach erreichen von End Sub oder End function springt das Programm automatisch zurück. Man muss nur dafür sorgen, dass das neue Programm auch die Daten hat, die es braucht. Variablen innerhalb einer Prozedur deklariert, kennt das andere Programm nicht, dagegen kann es als public deklarierte Variable erkennen und verändern.
Hier ein einfaches Beispiel:
Code: Alles auswählen
Public summe as long
Sub Main()
Dim z as long
Dim I as integer
Z = 10
For I = 1 to 100
Summe = Summe + 1
If I = Z then
Unterprogramm
Z = Z + 10
end if
next I
MSGBox (summe)
End Sub
Sub Unterprogramm()
Summe = Summe + 100
end sub
Hier kann das Unterprogramm die Variable auslesen und verändern. Die Variablen I und Z kennt es dagegen nicht. Die Deklaration von Public Variablen erfolgt außerhalb einer Prozedur, also vor dem ersten "Sub".
Noch ein Hinweis. Bei Schleifen muss der Beginn z.B. "Do" und das Ende "loop" in derselben Prozedur sein. Das dazwischen kann in einem Unterprogramm sein.
Gruß
Charly
Re: Maximallänge bei makros?
Verfasst: Di, 30.12.2008 20:48
von gurkende_gurke
Vielen vielen Dank.
Eine letze Frage hätt ich allredings noch: Wie greift man auf ein Makro zu, dass in einem anderen Modul steht? beim Beispiel stehen Unterprogramm und Hauptmakro ja im selben Modul. Und muss man dann die Variablen auf beiden Modulen als public definieren? Schonmal vielen Dank für das erste Beispiel

und vielleicht kannst du mir meine frage an Hand eines zweiten Beispiels erklären. Vielen Dank für jede Hilfe.
mfg Gurke
Re: Maximallänge bei makros?
Verfasst: Di, 30.12.2008 21:54
von Charly
Hallo Gurke!
Es spielt keine Rolle in welchem Modul das Unterprogramm steht. Lediglich wenn das andere Modul auch noch in einer anderen Bibliothek wäre, müsste man dafür Sorge tragen, dass die andere Bibliothek auch offen ist.
Public bedeutet, dass die Variable in allen Modulen und Bibliotheken gültig ist. Eine Deklaration als private würde dagegen nur innerhalb eines Moduls gültig sein.
Das heißt, die Variable muss nur einmal, am besten im Modul des Hauptprogramms deklariert werden. Unterprogramme können mit ihrem Namen aufgerufen werden, egal in welchem Modul sie stehen. Man darf nur den Namen nicht öfters verwenden und es darf kein Namenskonflikt mit irgendwelchen Schlüsselwörtern von OpenOffice auftreten.
Gruß
Charly