OpenOffice で単語のすべてのインスタンスをハイパーリンクにする

OpenOffice で単語のすべてのインスタンスをハイパーリンクにする

単語のすべてのインスタンスをコンピューター上のファイルへのハイパーリンクにするにはどうすればよいでしょうか。

単語の 1 つのインスタンスでそれを実行することができましたが、これを繰り返すと時間がかかるため、プログラム自体で実行できることを期待しています。

また、ファイル内の %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

検索と置換のコードは、Andrew Pitonyak のマクロドキュメント

環境変数に関しては、より難しい解決策が必要です。つまり、リンクからマクロを呼び出し、マクロがファイルへのシステム コールを実行します。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システムコール用。

関連情報