Hallo Jürgen,
Am 30.03.2019 um 19:33 schrieb Jürgen Klatt:
Hallo Thomas,
habe nun meinen Code entsprechend Deines Ratschlags und diverser anderer
Ungereimtheiten überarbeitet.
Schon mal gut :)
Könntest aber noch ein paar andere "Kleinigkeiten" bereinigen:
Keine Variable als "global" definieren!!!! "Global"-Variable werden im
Arbeitsspeicher aktiv gehalten, auch wen Dein (Makro-) Programm bereits
beendet ist. Jedes andere Programm oder Modul kann darauf zugreifen und
diese auslesen oder verändern. Ist eine Sicherheitslücke und ganz
schlechter Programmierstiel (es sei denn, es ist tatsächlich notwendig).
Du brauchst keine Global-Variablen! In Deinem Fall würde DIM immer
ausreichen, falls Du mehrere Module betreibst und kein Windows benutzt,
wäre "Privat" die korrekte Definition.
Die "Call" Aufrufe kannst Du Dir ersparen. Ist in VBA nötig, nicht aber
in LO/AOO Basic. Hier reicht es völlig, den Funktionsnamen zu verwenden.
"CAll" errinnert zu sehr an VBA und ist nur der Kompatibilität mit im
Funktionsumfang.
Zu den Variablen-Namen hat Gerhard schon was gesagt. Es gibt einfach
Namen, die werden auch vom Programm intern verwendet - wenn Du diese
dann noch als "globale" Variablen festlegst, ist Chaos vorprogrammiert.
Leider gibt es keine Liste interner Variablen-Namen. Hier ist einfach
etwas Phantasie gefragt: je eindeutiger eigene Namen sind um so
unverdächtiger. HIer gilt es: experimentieren.
Wenn das Programm bei der msgbox abschmiert (wie Du selbst scheibst und
wahrscheinlich nach vielen Versuchen identifiziert hast?) würde ich mal
mit einer Pause vor der msgbox arbeiten. Manchmal "überholen" sich
interne Prozesse - sie sind dann einfach zu schnell. Ergebnis: Absturz.
Oft hilft dann einfach eine wait() Funktion vor dem Absturzprozess - bei
Dir also vor der Msgbox. Starte mit "Wait(500)" - und reduziere den
später auf den kleinst möglichen Wert. Ein Wait(100) ist meist kaum zu
spüren vom Anwender.
Einen "echten" Fehler konnte ich jetzt nicht entdecken im Code - hab
aber auch nicht intensiv gesucht;)
Viele Grüße
Thomas
--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy