Seite 1 von 1
Dateiformat ermitteln
Verfasst: Di, 24.08.2010 11:35
von sven-my
Hallo Experten,
ich habe mir ein Makro geschrieben, daß beim Schließen eines Dokuments ausgeführt wird.
Was ich nicht bedacht hatte, ist, dies Makro wird auch ausgeführt, wenn ich eine DokumentVORLAGE bearbeitet habe, was aber NICHT passieren soll.
Zuweisung des Makros an ein Ereignis beenden, und wieder setzen, birgt Fehler (Vergesslichkeit, falscher Klick [Ereignis], u.s.w.)
Wie kann ich innerhalb des Makro das Dateivormat, also nach *.ot? abfragen, sodaß ich bei Auftreten dieser Endung das Makro einfach beende (if ... exit sub)
Hab' mich schon dusselig gesucht, aber wohl an den falschen Stellen, mit den falschen Begriffen.
gruß
sven-my
Re: Dateiformat ermitteln
Verfasst: Di, 24.08.2010 12:41
von Karolus
Hallo
Bei einer Vorlage sollte es ausreichen das Makro an das Ereignis "Dokumentkopie speichern oder exportieren" zu binden.
Gruß Karo
Re: Dateiformat ermitteln
Verfasst: Di, 24.08.2010 12:52
von sven-my
Hallo Karo,
ich glaube das hast Du etwas falsch verstanden.
Ich möchte, daß das Makro nicht ausgeführt wird, wenn ich eine Vorlage bearbeitet habe.
Ich will ja die Vorlage speichern ! Aber als Vorlage !!!
gruß
sven-my
Re: Dateiformat ermitteln
Verfasst: Di, 24.08.2010 13:14
von Karolus
Hallo
Ich will ja die Vorlage speichern ! Aber als Vorlage
Das sollst du ja auch.
Und wenn du
aus dieser Vorlage eine neues Dokument "Unbenanntx" erzeugst und nach Bearbeitung unter dem Namen "xyz.ods" speicherst wird das genannte Ereignis in Kraft treten (hoffe ich zumindest) - probiere doch meinen Vorschlag mal aus.
Gruß Karo
Re: Dateiformat ermitteln
Verfasst: Di, 24.08.2010 13:23
von komma4
sven-my hat geschrieben:Wie kann ich innerhalb des Makro das Dateivormat, also nach *.ot? abfragen, sodaß ich bei Auftreten dieser Endung das Makro einfach beende (if ... exit sub)
Binde die Bibliothe
TOOLS ein, frage ab, ob das Dokument schon gespeichert ist (weil es sonst bei einem nicht-gespeicherten zu einem Fehler kommt) und ermittle dann die Dateiendung mit der Routine
GetFileNameExtension
Code: Alles auswählen
If ThisComponent.hasLocation() Then
If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) Then
GlobalScope.BasicLibraries.loadLibrary( "Tools" )
End If
DateiEndung = GetFileNameExtension( ThisComponent.getURL() )
If DateiEndung = "ott" Then
Exit Sub
End If
End If
Das hilft?
Re: Dateiformat ermitteln
Verfasst: Di, 24.08.2010 13:24
von sven-my
Hallo Karo,
man kann mit Vorlagen *.ott auf ZWEI Arten umgehen :
1. öffnen
2. bearbeiten
Wenn ich ÖFFNE erzeuge ich ein neues Dokument auf Grundlage dieser Vorlage.
Wenn ich BEARBEITE ändere ich die Vorlage
Mit dem Makro wird das neue Dokument geändert, was ich aber nicht in der Vorlage haben will.
gruß
sven-my
Re: Dateiformat ermitteln [gelöst]
Verfasst: Di, 24.08.2010 13:42
von sven-my
Hallo komma4,
mir schein, das ist genau das was ich suchte.
Geht das mit "Tools" einbinden nicht etwas einfacher ? (ohne die verschachtelte if..Abfragen.)
Das Makro wird ansich schon gleich zu Anfang abgefangen, wenn ein Dokument gespeichert werden soll, daß NICHT aus bestimmten Vorlagen entstanden ist.
Die Voralgen haben eine bestimmte Buchstabenkombination in 'Eigenschaften/Beschreibung/Titel'.
Mit dieser Vorlage ist ein Makro gekoppelt, daß mir, abhängigt vom Empfänger einen Speichernamen erzeugt, und das leere Dokument (bis auf den Inhalt, der aus der Vorlage kommt) speichert. Dieses Makro ist speziell auf mein Adreß-Programm abgestimmt, sodaß ich nicht sehr universell sein muß.
Aber dem Makro ist es wurscht, ob *.ott oder *.odt --- und genau dieses will ich ändern.
gruß
sven-my
Ok --- wer lesen kann, der lese
Jetzt habe ich die Verschachtelung verstanden : wenn "Tools" nicht geladen, dann lade, wenn geladen, laß es bleiben.
o.a. Frage hat sich also erübrigt.
gruß
sven-my
EDIT
Hallo Winfried,
hat hervorragend geklappt - herzlichen Dank für den Code UND die Schnelligkeit.
gruß
sven-my