Makros

Hallo miteinander,

alles folgend Beschriebene in einem aktuellen LibreOffice Writer
unter Win10:

Vor rd. zwei Jahren habe ich aus der Symbolleiste öfters ein kleines
Makro aufgerufen, da hat es noch einwandfrei funktioniert.

1. Als ich es jetzt - nach etlichen LibO-Updates - wieder verwenden
wollte, erhalte ich beim Klick lediglich die Fehler-Meldung "Ein
Scripting Framework Fehler trat während der Ausführung vom
Basic-Skript
vnd.sun.star.script:Standard.Smily_kleiner.TextGraphicFixSize?language=Basic&location=application
auf." Darunter steht, dass es nicht gefunden werden konnte, obwohl
eine entsprechend benamste xba-Datei unter
"e:\Users\Franklin\AppData\Roaming\LibreOffice\4\user\basic\Standard\"
vorhanden ist.

Wie kommt das? Wie kann ich dieses - offensichtlich ja grundsätzlich
vorhanden - Makro wieder zum Laufen bekommen?

Wie kann ich überhaupt ein Makro einem Symbol zuweisen?
Früher ging dies nach meiner Erinnerung irgendwie einfacher...

2. Als Alternative probierte ich das Erstellen eines neuen Makros
mit dem Makrorekorder - nur WO wird dann das Ergebnis abgespeichert?
Außerdem habe ich mir wohl das Symbolbild beim Änderungsversuch
irgendwie zerschossen ... Wo werden die einzelnen Symbole eigentlich
abgespeichert, dass man sie evt. wieder neu importieren könnte?

3. Und wo werden eigentlich die kompletten Symbolleisten mit allen
ihren Gestaltungselementen abgespeichert? Eine frühere
registrymodifications.xcu, wo ich das vermutet hatte, hat mir
jedenfalls das zerschossene Symbol leider nicht wieder gebracht.

Was müsste ich dafür aus einem Backup wieder herstellen?

Besten Dank für zielführende Hinweise ...

Hallo Franklin,

Vor rd. zwei Jahren habe ich aus der Symbolleiste öfters ein kleines
Makro aufgerufen, da hat es noch einwandfrei funktioniert.

1. Als ich es jetzt - nach etlichen LibO-Updates - wieder verwenden
wollte, erhalte ich beim Klick lediglich die Fehler-Meldung "Ein
Scripting Framework Fehler trat während der Ausführung vom
Basic-Skript
vnd.sun.star.script:Standard.Smily_kleiner.TextGraphicFixSize?language=Basic&location=application
auf." Darunter steht, dass es nicht gefunden werden konnte, obwohl
eine entsprechend benamste xba-Datei unter
"e:\Users\Franklin\AppData\Roaming\LibreOffice\4\user\basic\Standard\"
vorhanden ist.

Starte doch einfach einmal
Extras > Makros verwalten > LibreOffice Basic
Dann siehst Du doch, welche Makros dort in welchen Modulen gespeichert sind.

Gruß

Robert

Hey Franklin,

hmm, viele Fragen und viele Probleme... manchmal ist es besser, das User-Verzeichnis komplett zu löschen und ein "jungfräuliches" erzeugen zu lassen - von der aktuell verwendeten Version.

Aber Achtung... erst alles wichtige sinnvoll sichern - dann erst das Benutzerverzeichis umbenennen!

Und genau hier sind die "FAllen" - was ist sinnvoll, was ist wichtig und wo ist das wie zu sichern. Gibt leider keine pauschale Lösung.

Zu Deinem Punkt 1:

Dass die Datei vorhanden ist, reicht LO leider nicht. Makros werden intern in einer *.xlc Datei verwaltet - und wenn der Pfad dort nicht drin steht, kann LO das Makro nicht finden. Die *.xlc Dateien findest Du im Verzeichnis

"e:\Users\Franklin\AppData\Roaming\LibreOffice\4\user\basic\"

Dein Unterverzeichnis "Standard" bezeichnet die Standard-Makro-Bibliothek - dort solltest Du *nie* Makros ablegen, die Du über Versionen hinweg speichern möchtest!!! "Standard" wir immer überschrieben.

In den *.xlc Dateien solltest Du auch nur dann etwas ändern, wenn Du weisst, was Du da tuest - kann man einiges kaputt machen.

Üblicherweise verpackt man eigene Applikationen in eine Extension - dort lässt sich dann auch eine eigene Symbolleite definieren oder eigene Menü-Einträge. Eine Extensin kannst Du dann immer wieder aufspielen.

ob das Makro überhaupt noch vorhanden ist kannst Du doch prüfen: Extras - Makros - Makors verwalten - LO Basic - > dann den Ort "meine Makros" auswählen, dort die Bibliothet Standard und rechts ein passendes Makro anklicken -> bearbeiten. Ich fürchte, da wird bei Dir nichts sein.

Auch die Zuweisung eines Symbols zu einem vorhandeem Makro (besser gesagt, das Einfügen eines neuen Symbols mit der Verbindung zum Makro) hat sich eigentlich nicht geändert - geht über Extras - Anpassen ... Menüs/Symbolleiten etc. Ist aber nicht zu empfehlen - denn die Anpassungen werden möglicherweise später beim Update überschrieben!

zu 2)

das wird dort gespiechert, wo Du es sagst;) wenn Du nix sagst - in der Standard Bibliothek mit dem Vorgabenamen "Main". Aber eigentlich wirste danach gefragt.

zu 3)

Die Standard-Symbolleisten sind in Dateien (*.xml) in den Verzeichnissen config/soffice.cfg/modules/<NamedesModules>/... zu finden, die einzelnen Änderungen werden in der RegistryModifications.xcu gespeichert. Da sich die Symbolleisten von Version zu Version ändern, können nicht passende "alte" RegistryModifications.xcu eher kontraproduktiv sein und vieles wird nicht funktionieren.

Aus einem Backup? passt nur, wenn die gleiche Version von LO aktiv ist - sonst besser "finger weg" oder Du hast viel Ahnung. Man kann alles (mit entsprechenden Aufwand) reparieren;)

Sinnvolles Vorgehen: Baue Dir immer eine Extension aus Makros - idealerweise mit eigenen Aufruf-Routinen (Symbolleiste, Menüeintrag oder so). Und immer in einer eigenen Bibliothek ablegen!

Viele Grüße

Thomas

Hallo Robert Großkopf,

Hallo Franklin,

Vor rd. zwei Jahren habe ich aus der Symbolleiste öfters ein
kleines Makro aufgerufen, da hat es noch einwandfrei
funktioniert.

1. Als ich es jetzt - nach etlichen LibO-Updates - wieder
verwenden wollte, erhalte ich beim Klick lediglich die
Fehler-Meldung "Ein Scripting Framework Fehler trat während der
Ausführung vom Basic-Skript
vnd.sun.star.script:Standard.Smily_kleiner.TextGraphicFixSize?language=Basic&location=application

auf." Darunter steht, dass es nicht gefunden werden konnte, obwohl

eine entsprechend benamste xba-Datei unter
"e:\Users\Franklin\AppData\Roaming\LibreOffice\4\user\basic\Standard\"

vorhanden ist.

Starte doch einfach einmal Extras > Makros verwalten >
LibreOffice Basic Dann siehst Du doch, welche Makros dort in
welchen Modulen gespeichert sind.

Dort taucht es zunächst nicht auf. Nach Erstellen und Reinkopieren
des Textes kommen leider immer nur alle möglichen Syntaxfehler ...

Vielleicht wäre es einfacher, wenn meine anderen Fragen beantwortet
würden, so dass ich ein Restore aus einem Backup machen kann.

Danke Dir trotzdem für die Antwort.

Hallo Robert,

Hallo Franklin,

Vor rd. zwei Jahren habe ich aus der Symbolleiste öfters ein
kleines Makro aufgerufen, da hat es noch einwandfrei
funktioniert.

1. Als ich es jetzt - nach etlichen LibO-Updates - wieder
verwenden wollte, erhalte ich beim Klick lediglich die
Fehler-Meldung "Ein Scripting Framework Fehler trat während
der Ausführung vom Basic-Skript
vnd.sun.star.script:Standard.Smily_kleiner.TextGraphicFixSize?language=Basic&location=application

auf."

Darunter steht, dass es nicht gefunden werden konnte, obwohl

eine entsprechend benamste xba-Datei unter
"e:\Users\Franklin\AppData\Roaming\LibreOffice\4\user\basic\Standard\"

vorhanden

ist.

Starte doch einfach einmal Extras > Makros verwalten >
LibreOffice Basic Dann siehst Du doch, welche Makros dort in
welchen Modulen gespeichert sind.

Dort taucht es zunächst nicht auf. Nach Erstellen und Reinkopieren
des Textes kommen leider immer nur alle möglichen Syntaxfehler ...

Vielleicht wäre es einfacher, wenn meine anderen Fragen beantwortet
würden, so dass ich ein Restore aus einem Backup machen kann.

Danke Dir trotzdem für die Antwort.

Hallo Franklin,

ich kenne mich mit Windows nicht weiter aus. Wenn ich unter Linux
allerdings so eine *.xba-Datei öffne, dann enthält diese Datei den Code
inneralb des <script>-Tags in Reinschrift:

Hallo Robert,

Hallo Franklin,

ich kenne mich mit Windows nicht weiter aus. Wenn ich unter
Linux allerdings so eine *.xba-Datei öffne, dann enthält diese
Datei den Code inneralb des <script>-Tags in Reinschrift: -----
REM ***** BASIC *****

Sub Main

End Sub ---- Das könntest Du einfach in das bisher leere Modul
kopieren. Allerdings musst Du Dich vorsehen, dass da nicht
irgendwelche Zeichen vorhanden sind, die eventuell nur nicht
sichtbar sind ...

Das hatte ich ja geschrieben, dass dann alle möglichen Zeichen als
Syntaxfehler angemeckert werden. Ich habe jetzt aber alles "nicht
passende" soweit rauskopiert, dass es mit dem Rest soweit
grundsätzlich wieder funktioniert. :slight_smile:

Das andere hat ja Thomas ausführlicher beschrieben.

Danke Dir ...

Hallo Thomas,

danke für deine Antworten.

Hey Franklin,

hmm, viele Fragen und viele Probleme... manchmal ist es besser,
das User-Verzeichnis komplett zu löschen und ein
"jungfräuliches" erzeugen zu lassen - von der aktuell verwendeten
Version.

Na ja, vielleicht wenn man nicht so viele individuelle Anpassungen
hat wie hier, was ansonsten im übrigen diverse LibO-Versionen ohne
Probleme überdauert hat. Sonst ist man ja Tage lang wieder am
Neueinrichten ... :frowning:

Zu Deinem Punkt 1:

Dass die Datei vorhanden ist, reicht LO leider nicht. Makros
werden intern in einer *.xlc Datei verwaltet - und wenn der Pfad
dort nicht drin steht, kann LO das Makro nicht finden.

Aha ...

Die *.xlc Dateien findest Du im Verzeichnis

"e:\Users\Franklin\AppData\Roaming\LibreOffice\4\user\basic\"

Danke, gefunden, aber inwieweit dort eine händische Ergänzung
sinnvoll sein könnte, weiß ich in der Tat nicht ...

Wann wird denn darin mein inzwischen neu erstelltes (kopiertes)
Makro auftauchen? Weil, bislang habe ich es (und auch keinen Pfad
dorthin) darin nicht gesehen.

Dein Unterverzeichnis "Standard" bezeichnet die
Standard-Makro-Bibliothek - dort solltest Du *nie* Makros
ablegen, die Du über Versionen hinweg speichern möchtest!!!
"Standard" wir immer überschrieben.

Ah ja, gut zu wissen ... Soweit ich mich erinnern kann, war da aber
auch immer noch alles von früher vorhanden - aber vielleicht trügt
mich auch meine Erinnerung ... :wink:

In den *.xlc Dateien solltest Du auch nur dann etwas ändern,
wenn Du weisst, was Du da tuest - kann man einiges kaputt
machen.

Ja, das glaube ich.

Üblicherweise verpackt man eigene Applikationen

Wie gesagt, es war eigentlich ein ganz kleines Makro, welches nur
eine neue Graphikgröße gesetzt hat, mehr nicht ... ich weiß nicht,
ob sich das dafür lohnt.

in eine Extension - dort lässt sich dann auch eine eigene
Symbolleite definieren oder eigene Menü-Einträge. Eine Extensin
kannst Du dann immer wieder aufspielen.

Und wie man DAS macht, ist ja auch alles bekannt und einfach, oder? :wink:

ob das Makro überhaupt noch vorhanden ist kannst Du doch prüfen:
Extras - Makros - Makors verwalten - LO Basic - > dann den Ort
"meine Makros" auswählen, dort die Bibliothet Standard und
rechts ein passendes Makro anklicken -> bearbeiten. Ich fürchte,
da wird bei Dir nichts sein.

So ist es, hatte ich ja auch schon an Robert geschrieben.
Deinen Beitrag musste ich übrigens erst aus dem Spam fischen. Wenn
Robert nicht drauf hingewiesen hätte, hätte es vielleicht noch viel
länger gedauert, bis ich ihn dort entdeckt hätte ... :wink:

Auch die Zuweisung eines Symbols zu einem vorhandeem Makro
(besser gesagt, das Einfügen eines neuen Symbols mit der
Verbindung zum Makro) hat sich eigentlich nicht geändert - geht
über Extras - Anpassen ... Menüs/Symbolleiten etc.

Danke, gefunden.

Ist aber nicht zu empfehlen - denn die Anpassungen werden
möglicherweise später beim Update überschrieben!

Wie gesagt, ist mir noch nie passiert ...

zu 2)

das wird dort gespiechert, wo Du es sagst;) wenn Du nix sagst -
in der Standard Bibliothek mit dem Vorgabenamen "Main". Aber
eigentlich wirste danach gefragt.

Ich wurde hier vom Rekorder nach 'Aufzeichnung beenden' nicht nach
dem Speicherort gefragt, daher ja meine Nachfrage hier in der ML.

zu 3)

Die Standard-Symbolleisten sind in Dateien (*.xml) in den
Verzeichnissen config/soffice.cfg/modules/<NamedesModules>/...
zu finden,

O.k., auch gefunden ... jetzt muss ich nur noch mein altes
Symbol-Bild wieder finden ...

die einzelnen Änderungen werden in der RegistryModifications.xcu
gespeichert. Da sich die Symbolleisten von Version zu Version
ändern, können nicht passende "alte" RegistryModifications.xcu
eher kontraproduktiv sein und vieles wird nicht funktionieren.

Sooo alt war das Backup ja nun auch nicht ... :wink:

Aus einem Backup? passt nur, wenn die gleiche Version von LO
aktiv ist - sonst besser "finger weg" oder Du hast viel Ahnung.
Man kann alles (mit entsprechenden Aufwand) reparieren;)

Sinnvolles Vorgehen: Baue Dir immer eine Extension aus Makros -

Wo ist das Vorgehen für Dummies beschrieben?

idealerweise mit eigenen Aufruf-Routinen (Symbolleiste,
Menüeintrag oder so). Und immer in einer eigenen Bibliothek
ablegen!

Danke für die vielen Hinweise.
Jetzt fehlt nur noch mein altes Symbol-Bild - Symbol austauschen
scheint jedenfalls auch nicht zu einem erwünschten Ergebnis zu
führen ...

Thomas

Liebe Grüße

Franklin

Hey Franklin,

[..]

Hallo Thomas,

danke für deine Antworten.

[..]
Wie gesagt, es war eigentlich ein ganz kleines Makro, welches nur
eine neue Graphikgröße gesetzt hat, mehr nicht ... ich weiß nicht,
ob sich das dafür lohnt.

Immer;) Falls Du es über verschiedene Versionen verwenden willst.... hihi... siehste ja gerade;)

Ansonsten: Kopiere den nötigen Code in der Basic-IDE, füge Ihn in einen einfachen Textfile ein (*.txt - Editor Deiner Wahl - bei mir Notepad++) - speichere den an einem sicheren Ort.

Bei Bedarf kopierst Du den Text wieder in die IDE zurück - dann noch das Makro mit einem Startknopf verbinden - Fertig. Geht auch;)

in eine Extension - dort lässt sich dann auch eine eigene
Symbolleite definieren oder eigene Menü-Einträge. Eine Extensin
kannst Du dann immer wieder aufspielen.

Und wie man DAS macht, ist ja auch alles bekannt und einfach, oder? :wink:

Nö, aber man lernt ja nie aus :))

1. Schritt: ne eigene (Basic-) Bibliothek erzeugen - dort dann ein Modul erzeugen und den Code reinkopieren.

Dann die Extension "BasicAddOnBuider" suchen und installieren;) - diese starten und sie führt Dich Schritt für Schritt durch den Prozess - und am Ende haste Deine Extension:)  - eventuell inkl. Menü und Symbolleiste. Eigentlich ganz einfach - oder?

Oder, falls Du auf Symbol und Menüleiste verzichten kannst - einfach im Basic-Verwaltungsdialog die eigene Bibliothek auswählen und auf "Exportiern" gehen - dort dann "als Extension" auswählen - Fertig;)

Viele Grüße

Thomas

Hallo Thomas,

Hey Franklin,

[..]

Hallo Thomas,

danke für deine Antworten.

[..] Wie gesagt, es war eigentlich ein ganz kleines Makro,
welches nur eine neue Graphikgröße gesetzt hat, mehr nicht ...
ich weiß nicht, ob sich das dafür lohnt.

Immer;) Falls Du es über verschiedene Versionen verwenden
willst.... hihi... siehste ja gerade;)

O.k.

in eine Extension - dort lässt sich dann auch eine eigene
Symbolleite definieren oder eigene Menü-Einträge. Eine
Extensin kannst Du dann immer wieder aufspielen.

Und wie man DAS macht, ist ja auch alles bekannt und einfach,
oder? :wink:

Nö, aber man lernt ja nie aus :))

1. Schritt: ne eigene (Basic-) Bibliothek erzeugen - dort dann
ein Modul erzeugen und den Code reinkopieren.

Done.

Dann die Extension "BasicAddOnBuider" suchen und installieren;) -
diese starten und sie führt Dich Schritt für Schritt durch den
Prozess - und am Ende haste Deine Extension:) - eventuell inkl.
Menü und Symbolleiste. Eigentlich ganz einfach - oder?

Das werde ich dann später sicher auch noch mal ausprobieren, fürs
Erste hab ich mal den nachfolgenden etwas schnelleren Weg gewählt
und ausprobiert. :slight_smile:

Oder, falls Du auf Symbol und Menüleiste verzichten kannst -
einfach im Basic-Verwaltungsdialog die eigene Bibliothek
auswählen und auf "Exportiern" gehen - dort dann "als Extension"
auswählen - Fertig;)

Danke, klappt.

Übrigens, irgendwie konnte ich mich dunkel erinnern: Nachdem ich in
den Optionen die Symbolleistengröße von 'automatisch' auf 'klein'
geändert hatte, hatte ich auch mein altes Symbolleisten-Bild wieder. :slight_smile: