
Wie kann ich jedes Vorkommen eines Wortes zu einem Hyperlink zu einer Datei auf meinem Computer machen?
Mir ist es bei einer Instanz des Wortes gelungen, aber es zu wiederholen wäre zeitaufwändig, also hoffe ich, dass das Programm es selbst kann.
Ich möchte auch die Systemvariablen %windir% und %userprofile% in der Datei verwenden.
Folgendes habe ich versucht:
%windir%\system32\shell32.dll
Dies wird jedoch durch Openoffice ersetzt (und schlägt fehl) und sieht folgendermaßen aus:
„%25windir%25\system32\shell32.dll“
Wenn ich doppelte Anführungszeichen hinzufüge, fügt OpenOffice dem Pfad ein weiteres Paar hinzu und das führt auch dazu, dass Windows die Datei nicht findet.
Ich habe unter „Bearbeiten“ > „Datei und Ersetzen“ nachgesehen, kann aber keine Option finden, alle Vorkommen eines Wortes durch einen Hyperlink zu einer Datei zu ersetzen und dabei das Wort unverändert zu lassen.
Antwort1
Wählen Sie zunächst den vorhandenen Link aus, den Sie erstellt haben, und kopieren Sie ihn. Führen Sie dann dieses Makro aus, das alle Vorkommen von „TheWordToLink“ findet und den Link an diesen Stellen einfügt.
Sub PasteHyperlinks
Dim vDescriptor, vFound, oVC
Dim document, dispatcher
oVC = ThisComponent.CurrentController.ViewCursor
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
vDescriptor = ThisComponent.createSearchDescriptor()
With vDescriptor
.SearchString = "TheWordToLink"
.SearchWords = True
.SearchCaseSensitive = False
End With
vFound = ThisComponent.findFirst(vDescriptor)
Do While Not IsNull(vFound)
oVC.gotoRange(vFound, False)
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
vFound = ThisComponent.findNext( vFound.End, vDescriptor)
Loop
End Sub
Der Such- und Ersetzungscode wurde aus Abschnitt 7.14 vonAndrew Pitonyaks Makrodokument.
Was Umgebungsvariablen betrifft, ist eine schwierigere Lösung erforderlich. Rufen Sie also ein Makro über den Link auf, und dann führt das Makro den Systemaufruf an die Datei aus. Wenn Sie Basic verwenden:
- Sehenhttps://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=53609zum Erstellen eines Hyperlinks, der ein Makro aufruft.
- SehenAutomatische Verknüpfungen in OpenOffice erstellenfür Code, der die Hyperlinks finden und erstellen kann.
- Sehenhttps://forum.openoffice.org/en/forum/viewtopic.php?f=29&t=25047für ein Makro, das eine Umgebungsvariable in einem Pfad verwendet.
- Sehenhttps://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=7918für Systemaufrufe.