Сделать все экземпляры слова гиперссылкой в ​​OpenOffice

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

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

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

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

% WINDIR%\system32\shell32.dll

Однако это заменяется (и терпит неудачу) Openoffice, чтобы быть похожим на это:

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

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

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

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 для системных вызовов.
Другие вопросы по тегам