Ich habe ein umfangreiches Makro, mit dem ich u. a. Absatzvorlagen zuordne. Zum einen importiere ich ein Fast-ASCII-Format in OOo-Writer und wandle es per Makro um, zum anderen rufe ich ein (Teil-)Makro per Tastatur auf, um eine Absatzvorlage einzuschalten. (Die Einschaltung eines Absatzformates per Tastatur, wie sie Version 2.0 anbietet, verwende ich nicht, weil ich 2.0 erst seit kurzem installiert habe; außerdem ist mein Makro komplexer, es verwendet eine Wenn-Dann-Struktur, sodaß sich z. B. manche Absätze nicht innerhalb von Fußnoten oder Kopf/Fußtext einschalten lassen, weil sie da nicht hingehören etc.)
Dieses Makro möchte ich grundsätzlich immer geladen haben.
Allerdings kann es passieren, daß ich mit Dokumentvorlagen arbeite, in der die eine oder andere Absatzvorlage nicht vorhanden ist. Wenn ich dann versehentlich den Tastencode für dieses Makro drücke, bekomme ich natürlich eine Fehlermeldung und das Fenster mit den Makros erscheint.
Um das zu umgehen, möchte ich eine Sicherheitsabfrage einbauen:
WENN <Absatzvorlage x> in dieser Dokumentvorlage/in diesem Dokument vorhanden DANN schalte <Absatzvorlage x> ein (SONST gar nichts oder msgBox "Ham wa nich!")
Wie fragt man das Vorhandensein einer Absatzvorlage (auch: Seitenvorlage oder was es sonst noch so gibt) ab?
Wie fragt man die Existenz von Vorlagen ab?
Moderator: Moderatoren
Hey Suavito,
Da machst du eine Schleife, die alle entsprechenden Vorlagen durchläuft, vergleichst die entsprechenden Namen und verzweigst dann in deine gewünschte Richtung.
Beispiel für die Seitenformate:
Und so kannst du das natürlich auch für die anderen Container machen.
Gruss
Thomas
Na, wenn du sie zuordnen kannst, dann weisst du das doch schon. Absatz- Zeichen und andere Vorlagen werden in einem Container gesammelt - und stehen dort namentlich zur Verfügung.Wie fragt man das Vorhandensein einer Absatzvorlage (auch: Seitenvorlage oder was es sonst noch so gibt) ab?
Da machst du eine Schleife, die alle entsprechenden Vorlagen durchläuft, vergleichst die entsprechenden Namen und verzweigst dann in deine gewünschte Richtung.
Beispiel für die Seitenformate:
Code: Alles auswählen
Sub Liste_Seitenformate
Dim oStyleFam as Object, aName as Object, i%, s$
oStyleFam = ThisComponent.getStyleFamilies()
aName = oStyeFam.getByName("PageStyles").getElementNames()
for i = lbound(aName) to ubound(aName)
s = s & aName(i) & chr$(10)
Next
MsgBox s 'listet alle vorhanden Formate auf
for i = lbound(aName) to ubound(aName)
if aName(i) = "MeineSeitenVorlage" then
REM tue etwas...
REm hier ist dein Code
end if
Next
End Sub
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic