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

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

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

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

% WINDIR%\system32\shell32.dll

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

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

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

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

1 ответ1

0

Сначала выберите созданную ссылку и скопируйте ее. Затем запустите этот макрос, который найдет все вхождения "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 для системных вызовов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .