Seite 1 von 1

Hyperlink > Makro aufrufen

Verfasst: Sa, 15.08.2015 09:40
von clag
Hallo kenner und Könner,

in einem Writer Dokument gibt es ein paar Hyperlinks, die jeweils auf eine Datei zeigen und soweit auch funktionieren.

Ich möchte diese Hyperlinks, mit einem Makro umgestalten, so das sie
1. ein Makro starten und 2. bei start dieses Makros ihren "Text" als Parameter übergeben.
Die Hyperlinks starten alle das gleiche Makro, der funktionale Unterschied ist der Text Parameter.

Daran scheitere ich gerade grandios.

Wie mache man einen Hyperlink zu einem "Makrostarter"?
Wie kann man beim Anklicken den Text übergeben?

Wenn ich ich versuche ein "Event" abzufragen (wie bei einer Schaltfläche) ist da leider nichts?

Re: Hyperlink > Makro aufrufen

Verfasst: Sa, 15.08.2015 09:58
von Rocko
clag hat geschrieben:Wie mache man einen Hyperlink zu einem "Makrostarter"?
Wie kann man beim Anklicken den Text übergeben?
Wenn ich mich nicht irre:

Rechtsklick auf Hyperlink - Hyperlink bearbeiten (Internet) - Weitere Einstellungen (Symbol ganz rechts) "Ereignisse"

Re: Hyperlink > Makro aufrufen

Verfasst: Sa, 15.08.2015 10:08
von clag
Hallo Rocko,

erstmal danke für die schnelle Antwort
da spricht der gute Sam Hawkins "wenn ich mich nicht irre" ;)

Wie ich das manuell einstelle habe ich wohl erkannt, sonst würde ich ja nicht auf die Idee kommen das per Makro machen zu wollen.
Ich habe hunderte von Dateien die umstricken möchte, da ist Handarbeit uuuhh...

edit:
ich bin mal fremd gegangen und habe die gleiche Frage in englischen Forum gestellt, hier scheint ja Urlaubszeit zu sein.
https://forum.openoffice.org/en/forum/v ... 20&t=78673

Re: Hyperlink > Makro aufrufen

Verfasst: Sa, 15.08.2015 11:18
von F3K Total
Hallo Clag,
hatte auch mal ein solches Problem und habe mich damals lange damit beschäftigt.
Es geht per TextCursor. Events konnte ich bei meinen Forschungen auch nicht finden.
Aus diesen Makros kannst Du alles nötige entnehmen:

Code: Alles auswählen

sub S_Add_Macro_to_Hyperlinks
    dim eventpropsOnClick(1) as new com.sun.star.beans.PropertyValue
    eventpropsOnClick(0).name = "EventType"
    eventpropsOnClick(0).value = "Script"
    eventpropsOnClick(1).name = "Script"
    eventpropsOnClick(1).value ="vnd.sun.star.script:Standard.Module1.S_TestHyperlinkMacro?language=Basic&location=document"
    odoc = thiscomponent
    otext = odoc.text
    otextcursor = otext.createtextcursor
    otextcursor.CollapsetoStart
    do
        if otextcursor.HyperLinkURL <> "" then
           msgbox "Hyperlink gefunden: " & otextcursor.HyperLinkURL
           temp =  otextcursor.hyperlinkevents
           temp.replaceByName("OnClick",eventpropsOnClick)
           'temp.replaceByName("OnMouseOver",eventpropsOnMouseOver)
           otextcursor.hyperlinkevents = temp
        endif
    loop until otextcursor.gotoNextWord(false) = false
End sub

Sub S_TestHyperlinkMacro
    Msgbox "Juhu, das Zuweisen des Makros ""S_TestHyperlinkMacro"" zu allen Hyperlinks im Dokument hat geklappt"
End Sub
Gruß R

Re: Hyperlink > Makro aufrufen

Verfasst: Sa, 15.08.2015 12:00
von clag
Hallo F3K Total,

wie es nicht anders zu erwarten war funktioniert dein Code tip-top !
Das restliche Drumherum kriege ich hoffentlich gebacken.

besten Dank dafür!