Seite 1 von 1

Liste der Textmarken erzeugen [Gelöst]

Verfasst: Mi 16. Okt 2013, 12:37
von Alton
Hallo!

Ich bastel gerade an einem Makro, das mir alle im Writer-Dokument vorhandenen Textmarken auflisten soll.

Für Word/Visual Basic hab ich entsprechenden Code gefunden, aber für LibreOffice nicht.

Nun wollte ich das Word-Makro einfach umbauen, damit es in LO läuft, aber ich stecke fest.

Der Original-Code lautet:

Code: Alles auswählen

Sub BookmarksAuflisten()

Dim aDoc As Document
 Dim bDoc As Document
 Set aDoc = ActiveDocument
 Set bDoc = Documents.Add
 For i = 1 To aDoc.Bookmarks.Count
 sBn = aDoc.Bookmarks(i).Name
 bDoc.Range.InsertAfter sBn & vbCr
 Next i
 bDoc.Activate
 
End Sub
Ich hab daraus bisher das gemacht:

Code: Alles auswählen

Sub BookmarksAuflisten

Dim aDoc As Object
Dim Dummy() 
Dim Url As String
Dim bDoc As Object
 
Url = "private:factory/swriter"

 Set aDoc = ThisComponent
bDoc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())

 For i = 1 To aDoc.Bookmarks.Count
 sBn = aDoc.Bookmarks(i).Name
 bDoc.Range.InsertAfter sBn & vbCr
 Next i

End Sub
In dem Inhalt der For-Schleife gibt es nun natürlich Probleme. Mit sowas hab ich gerechnet. Allerdings weiß ich nicht, was das StarBasic-Pendant dazu aussehen müsste oder wie der Code sonst umzuschreiben wäre, damit die Namen der Textmarken im neu erzeugten Dokument untereinander aufgelistet werden.

Ich kenne mich weder mit Visual Basic noch mit StarBasic gut aus. Kann jemand helfen? :)

Re: Liste der Textmarken erzeugen

Verfasst: Mi 16. Okt 2013, 12:55
von pmoegenb
Informationen zu StarBasic findest Du hier.

Weshalb möchtest Du etwas codieren was im Navigator eingebaut ist ? Du kannst damit sogar zu den Textmarken springen.

Re: Liste der Textmarken erzeugen

Verfasst: Mi 16. Okt 2013, 13:30
von Alton
Danke erstmal für den Link.

Die Funktionalität des Navigators (Springen zur Textmarke) ist mir bekannt. :)

Hast du dir angesehen, was der Visual Basic-Code macht?

Wenn du mir sagen kannst, wie ich das mit dem Navigator hinbekomme, würde mich das sehr freuen. Also so, dass ein neues Dokument oder eine Liste erzeugt wird, in dem/der die Textmarken untereinander aufgeführt sind, und zwar nicht nur zum einzeln Anklicken, sondern ich brauche tatsächlich die Namen der Textmarken als editierbaren oder zumindest kopierbaren Text.

Re: Liste der Textmarken erzeugen

Verfasst: Fr 18. Okt 2013, 23:24
von F3K Total
Hi,
habe hier eine Lösung für Dich gebaut:
Am Ende des Dokumentes wir ein Seitenumbruch eingefügt und dann alle vorhandenen Textmarken untereinander aufgelistet.

Code: Alles auswählen

Sub BookmarksAuflisten
    oBookmarks = thiscomponent.bookmarks
    oText = Thiscomponent.Text
    oTextcursor = oText.createTextcursor
    oTextCursor.gotoend(false)
    oTextCursor.breaktype = 5
    oText.insertControlCharacter(oTextCursor,0 , False)'neue Seite
    oTextCursor.gotoend(false)
    oTextcursor.String = "Textmarken in diesen Dokument:" + chr(13)+chr(13)
    oTextCursor.gotoend(false)
    for i = 0 to oBookmarks.count - 1
        obookmark = oBookmarks(i)
        sName = obookmark.Name
        sText = obookmark.Anchor.String
        oTextcursor.String = sName
        oTextcursor.HyperLinkURL = "#"+sName
        oTextCursor.gotoend(false)
        oTextcursor.String = ": "+sText
        oTextCursor.gotoend(false)
        if i < oBookmarks.count - 1 then
            oText.insertControlCharacter(oTextCursor,0 , False)
        endif
    next i
End Sub
Gruß R

Re: Liste der Textmarken erzeugen

Verfasst: Do 24. Okt 2013, 13:50
von Alton
Oh, hey klasse! Vielen Dank! :)

Funktioniert super. Die Verlinkungen und die Zielausgabe hab ich wieder rausgenommen, da nicht benötigt.
Nochmal vielen Dank für deine Hilfe. :D

Re: Liste der Textmarken erzeugen [Gelöst]

Verfasst: Do 24. Okt 2013, 19:55
von F3K Total
Hi,
nach toll, erst willst du
Alton hat geschrieben:nicht nur zum einzeln Anklicken
und dann wieder
Alton hat geschrieben:Die Verlinkungen und die Zielausgabe hab ich wieder rausgenommen, da nicht benötigt.
Dafür habe ich mir dann Zeit genommen, echt super:evil:
R

Re: Liste der Textmarken erzeugen [Gelöst]

Verfasst: Fr 25. Okt 2013, 11:04
von Alton
Zugegeben, im Nachhinein ist das Wörtchen "nur" da oben fehl am Platze. Tut mir leid, das hatte ich auf die Funktionalität des Navigators bezogen.
Ich hoffe, der Zeitaufwand für den Teil des Codes hielt sich in Grenzen.