Сделать все вхождения слова гиперссылкой в ​​OpenOffice

Сделать все вхождения слова гиперссылкой в ​​OpenOffice

Как сделать так, чтобы каждое упоминание слова было гиперссылкой на файл на моем компьютере?

Мне удалось сделать это с одним экземпляром слова, но повторение этого займет много времени, поэтому я надеюсь, что программа сама справится с этим.

Я также хотел бы использовать системные переменные %windir% и %userprofile% в файле.

Вот что я попробовал:

%windir%\system32\shell32.dll

Однако Openoffice заменяет это (и не работает) и выглядит так:

"%25windir%25\system32\shell32.dll"

Если я добавлю двойные кавычки, OpenOffice добавит еще одну пару к пути, и это также не позволит Windows найти файл.

Я посмотрел в меню «Правка» > «Файл и замена», но не вижу возможности заменить все вхождения слова гиперссылкой на файл, сохранив при этом само слово.

решение1

Сначала выберите существующую ссылку, которую вы создали, и скопируйте ее. Затем запустите этот макрос, который найдет все вхождения "TheWordToLink" и вставит ссылку в эти места.

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

Код поиска и замены взят из раздела 7.14Макродокумент Эндрю Питоняка.

Что касается переменных окружения, то тут требуется более сложное решение. То есть, вызвать макрос из ссылки, а затем макрос выполнит системный вызов файла. Если вы используете Basic:

  1. Видетьhttps://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=53609о том, как сделать так, чтобы гиперссылка вызывала макрос.
  2. ВидетьСоздание автоматических ссылок в OpenOfficeдля кода, который может находить и создавать гиперссылки.
  3. Видетьhttps://forum.openoffice.org/en/forum/viewtopic.php?f=29&t=25047для макроса, который использует переменную среды в пути.
  4. Видетьhttps://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=7918для системных вызовов.

Связанный контент