Seite 1 von 1

Makros bei Laden einer Datei

Verfasst: Di 3. Feb 2026, 19:01
von Cepheus
Bei einer ähnlichen Anfrage habe ich (von Karolus) gelernt, wie ein Makro mit dem Ereignis verknüpft wird. Weiters habe ich gelernt, alle Sprungziele des aktuellen Dokuments zu ermitteln. Eines der Ziele ist "Bild6|graphic" vom Linktyp "Bilder". Nun möchte ich, dass beim Öffnen der Datei eben zu diesem Bild gesprungen wird. Dazu habe ich das Ereignis Dokument erzeugt mit folgendem Makro vernüpft:

Code: Alles auswählen

Sub LinkBeiDokumentErzeugt
	Dim vOneLink 'Ein Linktyp
	Dim vObj

	vOneLink = ThisComponent.getLinks().getByName("Bilder") 'Ein Linktyp
	vObj = vOneLink.getByName("Bild6|graphic")	'Ein in dem Linktyp enthaltener Link
	ThisComponent.CurrentController.Select(vObj)
End Sub
Ergebnis: Das Bild wird angesprungen und leider auch ausgewählt. Wie könnte ich das Makro besser gestalten?
Ich bitte um Vorschläge.
Gruß,
Cepheus

Re: Makros bei Laden einer Datei

Verfasst: Sa 7. Feb 2026, 15:03
von mikele
Hallo,
der Spung an die richtige Stelle im Dokument bedeutet hier den ViewCursor an die entsprechende Stelle zu setzen.

Code: Alles auswählen

Sub LinkBeiDokumentErzeugt
	Dim vOneLink 'Ein Linktyp
	Dim vObj
	oDoc=ThisComponent
	vOneLink = oDoc.getLinks().getByName("Bilder") 'Ein Linktyp
	vObj = vOneLink.getByName("Bild1|graphic")	'Ein in dem Linktyp enthaltener Link
	'Wenn das Bild sich in einem Textrahmen (Beschriftung) befindet, wird zur Beschriftung gesprungen
	'wenn das nicht sein soll, muss zunächst das übergeordnete Objekt gewählt werden - dazu die folgenden drei Zeilen entkommentieren
'	if vobj.Parenttext.supportsService("com.sun.star.text.TextFrame") then
'		vObj=vobj.Parenttext
'	end if
	'Textcursor setzen
	oTextCursor=vObj.Anchor.Text.createTextCursorByRange(vObj.Anchor)
	'aktuellen Viewcursor auslesen
	oViewCursor=oDoc.CurrentController.ViewCursor
	'Viewcursor an die Stelle des Textcursors setzen
	oViewCursor.gotoRange(oTextCursor, False)
End Sub