Zunächst DANKE an Euch. Ihr seid spitze!
(Kurzer Hinweis: Ich nutze LibreOffice und kann in der Arbeit keine AddInns herunterladen. Muss also entweder CODE kopieren und in ein Modul schreiben oder selber tippen . )
Folgendes Problem: Von vielen ODTs muss ich die META Daten (konkret die Dokumenten-Eigenschaften TITEL, KEYWORDS, und evtl. AUTHOR) komfortabel editieren können.
In MS-Excel-VBA habe ich dazu ein feines Programm geschrieben, in dem ich zunächst einen Ordner wählen kann, alle OFFICE-Dateien mit TITEL und KEYWORDS in die Tabelle geschrieben werden. Nun kann ich hier die TITEL und KEYWORDS in der Tabelle anpassen (oder eben nicht), drücke AKTUALISIEREN und er rattert alle Dateien durch und trägt die Änderungen ein. Klappt perfekt. Geht aber leider nur für Office Dateien.
Für ODTs habe ich bisher nur folgende "Mini-Lösung", die für den Anwender mittels ICONS in der Symbolleiste die Änderung in der geöffneten einen(!) Datei erleichtert. Also nicht sehr bequem, um viele Dateien anzupassen, aber evtl. komfortabler, weil man nicht erst in die Egenschaften des Dokument rein muss...
Code: Alles auswählen
' <<< 1 >>>
Sub Autor_Anpassen
Dim TempString As String
TempString = InputBox ("Derzeit eingetragener Autor des Dokuments: < " & ThisComponent.DocumentProperties.Author & " > "& chr(13) & " " & chr(13) & "Sie können diesen nun ändern bzw. bei fehlendem Autor diesen neu eintragen:","Autor Eintragen bzw. Ändern", ThisComponent.DocumentProperties.Author)
if TempString <> "" Then
ThisComponent.DocumentProperties.Author = TempString
ThisComponent.store()
MsgBox(" " & chr(13) &" Der Autor des Dokuments lautet nun: "& chr(13) & chr(13) &" < " & ThisComponent.DocumentProperties.Author & " > " & chr(13) & chr(13) & " ",, "Änderungen erfolgreich")
end if
End Sub
' <<< 2 >>>
Sub Titel_Anpassen
Dim TempString As String
TempString = InputBox ("Derzeit eingetragener Titel des Dokuments: < " & ThisComponent.DocumentProperties.Title & " > "& chr(13) & " " & chr(13) & "Sie können diesen nun ändern bzw. bei fehlendem Titel diesen neu eintragen:","Titel Eintragen bzw. Ändern", ThisComponent.DocumentProperties.Title)
if TempString <> "" Then
ThisComponent.DocumentProperties.Title = TempString
ThisComponent.store()
MsgBox(" " & chr(13) &" Der Titel des Dokuments lautet nun: "& chr(13) & chr(13) &" < " & ThisComponent.DocumentProperties.Title & " > " & chr(13) & chr(13) & " ",, "Änderungen erfolgreich")
end if
End Sub
' <<< 3 >>>
Sub Schluesselwoerter_Anpassen
Dim CurrentKeywords As String
Dim NewKeywords As String
Dim i as integer
Dim TempArray As Object
' Den Array Keywords abfragen
For i = LBound(thisComponent.getDocumentProperties().Keywords) To UBound(thisComponent.getDocumentProperties().Keywords)
CurrentKeywords = CurrentKeywords & ", " & thisComponent.getDocumentProperties().Keywords(i)
Next i
NewKeywords = InputBox (" Derzeit eingetragene Schlüsselwörter des Dokuments: < " &CurrentKeywords & " > "& chr(13) & " " & chr(13) & "Sie können diese nun ändern bzw. neu eintragen:","Schlüsselwörter Eintragen bzw. Ändern")
if NewKeywords <> "" Then
' HIER KRIEGE ICH LEIDER NIX REIN IN DIE VARIABLE "KEYWORDS" :-( :-( Hier einige Versuche ein Feld des Arrays zu füllen
ThisComponent.DocumentProperties.Keywords(1) = "New1"
ThisComponent.DocumentProperties().Keywords(1) = "New1"
ThisComponent.DocumentProperties(0).Keywords(1) = "New1"
' Speichern
ThisComponent.store()
' Den Array Keywords abfragen
CurrentKeywords = ""
For i = LBound(thisComponent.getDocumentProperties().Keywords) To UBound(thisComponent.getDocumentProperties().Keywords)
CurrentKeywords = CurrentKeywords & " " & thisComponent.getDocumentProperties().Keywords(i)
Next i
MsgBox(" " & chr(13) & " Die Schlüsselwörter des Dokuments lauten nun: "& chr(13) & chr(13) &" < " & CurrentKeywords & " > " & chr(13) & chr(13) & " ",, "Änderungen erfolgreich")
'end if
End sub
1. In meinem CODE klappt die Sub 1 und 2 gut, also das Anpassung vom Author und vom Titel. Sub 3 mit den Keywords NICHT . Kann diese zwar auslesen, aber nicht wieder was rein schreiben. Bin zu doof. HABT IHR EINEN TIPP ?
2. Habt Ihr auch eine Idee für die "GROßE" Lösung? Also in CALC einen Ordner wählen, Dateien auslesen mit TITELund KEYWORDS, editieren und alle Dateien entsprechend aktualisieren? Geht das?
DANKE und VLG