Pfadangabe in Makro

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Pfadangabe in Makro

Beitrag von Stephan »

Schade das Du nicht erklärst wofür das Ganze gut sein soll, denn viele dürften garnicht verstehen wo und weshalb die Fehlermeldungen auftreten ... (nämlich deshalb weil beim Öffnen die Information über das Dokumentobjekt nicht rechtzeitig für eine benutzerdefinierte Funktion zur Verfügung steht)
Ich bin schon ewig auf der Suche nach einer gescheiten Funktion, die mir das Verzeichnis als string liefert, in dem die aktuell geöffnete *.ods gespeichert is.
Bsp:
geöffnete Datei: c:\test\test.ods
dann soll der string "c:\test\" liefern

Bei MS EXCEL liefert "ActiveWorkbook.Path" den gewünschten string. Daher die Frage ob es bei OpenOffice eine ähnliche Funktion gibt.
Ich habe schon über ein Objekt mit "thiscomponent.url" versucht an die Information zu gelangen, was prinzipiell auch möglich ist.
WEiß ich nicht genau, wenn dann sollte sowas in der Biblibliothel namens "tools" der OOo-Makrobibliotheken enthalten sein.
Ich halts allerdings für überflüssig sich von solchen Dingen abhängig zu machen, die leicht versagen wenn die entsprechenden Bibliotheken nicht installiert sind, viel verlässslicher ist doch da Ganze durch einfache Stringmanipulation zu lösen:

Code: Alles auswählen

x = ThisComponent.URL
i = 0
Do
  i = i + 1
  x1 = Right(x, i)
Loop While Left(x1,1)<>"/"
pfad = ConvertFromURL(LEFT(x, LEN(x)-i+1))
Jedoch liefert Calc für jeden Funktionsaufruf eine Fehlermeldung, wenn man das Dokument geschlossen hat und dann erneut öffnet. Danach kann man alles neu laden und es klappt auch. Doof ist nur das man vorher zig Fehlermeldungen wegklicken musste...[/[uote]
[/quote]

Ich kenne leider keine Möglichkeit das an dieser Stelle, bei der speziellen Information zu vermeiden wenn Du eine benutzerdefinioerte Funktion benutzt.
Lösung ist auf die Tabellenfunktion ZELLE() zurückzugreifen und die benötigte Information abzutrennen.
Wenn Du deen Buchlink in meiner Signatur anklickst und die dort erhältliche Leseprobe herunterlädst findest Du in Kapitel 6.6 beginnend ab Seite 242 ein ausführliches Beispiel was zeigt wie Du den Dateinamen antrennst, Du mußt es nur 'umdrehen' und den Pfad abtrennen.
Die erhaltene Lösung funktioniert zuverläsig und wenn Du sie häufiger brauchst kannst Du Ihre einen Namen geben (Einfügen-Namen) und hast dann einen kurzen Ausdruck verfügbar wenn Du das Ganze in der Standarddokumentvolrlage speicherst.




Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Pfadangabe in Makro

Beitrag von Stephan »

Es funktioniert zumindest solange kein Leerzeichen im Pfad steckt.
es funktioniert auch mit Leerzeichen uneingeschränkt.
Aber trotzdem ist das noch nicht das ideale. Ich hätte gerne eine Funktion, die im Hintergrund läuft. Also etwas das nicht extra im Datenblatt steht sondern nur im Basic-Code sichtbar wird.
Die Datei soll an mehrere Leute weitergegeben werden und da wäre es praktisch, dass die Pfadangabe nicht einfach versehentlich aus dem Datenblatt gelöscht werden kann.
Ich bin davon ausgegangen die Basic-Funktion wird ohnehin im Tabellenblatt aufgerufen - das ist nun so? Wie ist es sonst?




Gruß
Stephan
Antworten