MS Word に変数を保存し、ハイパーリンクの変数としてアプリケーションで使用しますか?

MS Word に変数を保存し、ハイパーリンクの変数としてアプリケーションで使用しますか?

私は、20 ハイパーリンクVMのIPが変更される、 する必要がある手動で変更ドキュメント全体に渡って。変数を次のように保存する方法はありますか?

vm_ip = "ec2-13-211-bla-bla.amazonaws.com"

だから、ハイパーリンクを与える代わりにec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller、私は与えることができます{vm_ip}/swagger-ui.html/フードコントローラー

こんな感じです。マクロを調べていたのですが、わかりにくく、どのように機能するのか分かりませんでした。

答え1

  1. これは見た目よりはるかに複雑になる可能性があり、そのためこの回答はかなり長くなっています。理解すべき重要な点がいくつかあり、手順も多数あります。私の意見では、少なくとも非常に優れた指示がなければ、エンド ユーザーが適切に実行できるとは考えられません。個人的には、これは「プログラミング」タスクだと思いますが、あまり頻繁に行うようなものではないため、やはり優れた指示が必要だと思います。

  2. これらのハイパーリンクを Word で機能させたいだけの場合は、これらのハイパーリンクを単なるテキストにするか、アクティブなハイパーリンクにするかに応じて、主に 2 つの方法があります。

    ドキュメントを HTML または PDF として保存するときに機能するように Word に挿入する場合、この回答ではその点がカバーされていないため、その要件を含めるように質問を変更する必要があります。また、ここで説明するフィールド コーディングは、Word のデスクトップ バージョンでのみ使用できます (Web バージョンまたは「デバイス」バージョンのいずれかでも機能する可能性がありますが、最後に確認したところ、これらのバージョンはフィールド コードではあまりうまく機能しませんでした)。

  3. したがって、これらのリンクを Word がアクティブ リンクとして扱わない Word 内のテキストにしたい場合 (たとえば、リンク テキストを他の場所にコピーできるようにドキュメント内に存在する場合)、SET フィールドとブックマーク フィールドを使用してこれを行うことができます。

    たとえば、「ec2-13-211-bla-bla.amazonaws.com」のような「ベース」アドレスが1つだけあり、それを多くの場所で再利用し、追加のアドレス情報も使用する場合、次のように使用できます。

    { SET ベース 1 は "ec2-13-211-bla-bla.amazonaws.com" です }

    文書の先頭に(実際には、誤って削除されないように、最初のページのヘッダーに配置する方が安全です)。次に、あなたが示した例に従って、REF フィールドが必要です。

    { REF base1 }/swagger-ui.html/food-controller

    (実際には REF を省略することには利点があります):

    { base1 }/swagger-ui.html/food-controller

    すべての { } は、Windows デスクトップ版の Word で Ctrl + F9 を使用して挿入できる特殊なフィールド コード中括弧のペアである必要があります。

    私の知る限り、完全な URL を REF フィールドとプレーン テキストに分離すると、Word が結果のリンク テキストをクリック可能な HYPERLINK フィールドに変換しようとするのを防ぐことができます。

    「ec2-13-211-bla-bla.amazonaws.com」を別の名前に変更する必要がある場合、たとえば「ec2-13-211-new-bla-bla.amazonaws.com」に変更する必要がある場合は、SET フィールドのテキストを変更し、SET フィールドを更新 (選択して F9 キーを押す) してから、他のすべてのフィールドを更新します (例: ctrl-A、F9)。

    SETフィールドよりも誤って削除されにくいものが必要な場合は、カスタムドキュメントプロパティを作成して使用することができます。たとえば、Word 2016/2019/365では、

    a. ファイル->情報に移動します

    b. プロパティドロップダウンをクリックします(右側の列の上部にあります)

    c. 詳細プロパティをクリック

    d. カスタムタブをクリック

    e. テキストボックスに「base1」と入力します

    f. タイプボックスで「テキスト」が選択されていることを確認します

    g. 値ボックスにec2-13-211-bla-bla.amazonaws.comと入力します。

    h. 「コンテンツへのリンク」ボックスのチェックが外れていることを確認します

    i. OKをクリック

    リンクに必要なフィールドコーディングは次のようになります

    { DOCPROPERTY base1 }/swagger-ui.html/food-controller

    リンクを更新するには、カスタム プロパティ ダイアログに戻り、demo1 プロパティの値を変更し、ドキュメント テキストを選択して、ドキュメント内のすべてのフィールドを更新します (もう一度 Ctrl + A、F9)。

    複数の異なる「ベース アドレス」がある場合は、複数の SET フィールドまたは複数のカスタム ドキュメント プロパティ (base1、base2、base3 など) が必要になります。

  4. クリック可能なハイパーリンク フィールドが必要な場合は、次のように REF フィールドを HYPERLINK フィールド内にネストする必要があるため、少し複雑になります。

    { ハイパーリンク "{ base1 }/swagger-ui.html/food-controller" }

    また、全て{ } は、キーボードで入力できるものではなく、Ctrl + F9 の特殊なフィールド括弧文字である必要があります。

    しかし、2つの問題があります。

    a. 表示テキストは、Word が最初に HYPERLINK フィールドを作成したとき (または最初に更新したとき) に固定されます。さらに、最初に指定した「リンク テキスト」と同じになるように固定されます。

    b. Word は、文書を保存して閉じ、再度開くと、REF フィールドを解決する傾向があります (つまり、フィールドをその結果に置き換えます)。そのため、その時点では、ベース アドレスを変更したり、ハイパーリンクを更新したりすることができなくなります。

    ハイパーリンク フィールドを 1 つだけ試す場合は、(b) に気付かないかもしれません。Word が REF フィールドを解決できない原因は、HYPERLINK フィールドのどこかにブックマーク (手動で挿入するか、SET フィールドを使用して挿入できます) があるためです。Word は挿入ポイントに _GoBack という隠しブックマークを挿入するため、文書を閉じる前に最後に HYPERLINK フィールドを編集していた場合は、それフィールドのネストされたフィールドは、再度開いたときに保持される可能性があります。

    したがって、HYPERLINK フィールドのネストされたコーディングが失われないようにするための秘訣は、各フィールドにブックマークが含まれていることを確認することです。次のように、各 HYPERLINK に異なる名前の SET フィールドを挿入することでこれを実現できます。

    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } } { HYPERLINK "{ base1 }/swagger-ui.html/something-else" { SET save2 " " } }

    または、次のようなコーディングを使用して、ハイパーリンク フィールドごとに新しいブックマーク名を自動的に生成することもできます。

    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET "save{ SEQ save }" " " } } { HYPERLINK "{ base1 }/swagger-ui.html/something-else" { SET "save{ SEQ save }" " " } }

    (注:このアイデアはここ「トリック」に依存しているという事実は、Microsoft がソフトウェアを変更することで簡単にこれを無効にできることを意味しますが、現時点では機能しているようです。

    上で説明したように、{ base1 } 部分には SET/REF フィールドまたはカスタム ドキュメント プロパティ アプローチのいずれかを使用できるはずです。

    最後に、問題 (a)、つまりリンクの「表示テキスト」についてはどうでしょうか?

    これを実際に解決するのは少し難しいです。

    A. 「リンクテキスト」とは独立した「表示テキスト」が必要な場合、例えば、表示テキストを次のようにしたいとします。

    表示テキスト

    まず、最終的に使用するフィールドのハイパーリンクを作成します。例:

    { ハイパーリンク "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }

    次に、実際にハイパーリンクが必要な場所に、必要な表示テキストを表示するハイパーリンクを挿入します。1つの方法は、HYPERLINKフィールドを手動で挿入することです。例:

    • Ctrl + F9 キーを押してフィールド コード中括弧 { } を挿入します。

    • 中にHYPERLINK「私の表示テキスト」と入力します

    • フィールドを選択し、F9キーで結果を更新します。結果には必要なテキストが表示されます。

    • 他のフィールドのテキスト全体を選択してコピーします HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " }

    • HYPERLINK「my display text」を選択し、他のコードを貼り付けて置き換えます。

    • フィールド値を更新します。

    これには 1 つの問題がありますが、これは「B」まで読んでいただければ明らかになると思います。最後に説明します。

    B. 代わりに、表示テキストをリンク テキストと同じにしたい場合は、別のトリックに頼る必要があります。

    このコーディングを使用したとしましょう

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    
    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }
    

    すると、あなたがしなければならないのは消去「base1」ブックマークを削除し、HYPERLINK フィールドを更新します。その時点で、HYPERLINK フィールドの結果に次のようなエラーが表示されます (Word の英語版の場合)。

    Error! Hyperlink reference not valid.
    

    これにより、表示テキストがリセットされるようです。これで、必要なアドレスで base1 ブックマークを再作成し、すべての HYPERLINK フィールドを再度更新できます。

    SET フィールドと REF フィールドを使用している場合、SET フィールドを削除する必要はありません。SET を SEQ に変更します。

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    { SEQ base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    次にフィールドを更新すると、ブックマークが破棄されます。

    ハイパーリンクを更新した後、SEQをSETに戻し、アドレスを変更します。たとえば、

    { SET base1 "ec2-13-211-new-bla-bla.amazonaws.com" }
    

    次にフィールドを更新し、次にすべての HYPERLINK フィールドを更新します。

    カスタム ドキュメント プロパティで同様の操作を行うのは、プロパティの名前を 1 つの手順で変更できるため、おそらく少し面倒です。おそらく最善の方法は、リストでプロパティを選択し、名前を変更して [追加] をクリックすることです。これにより、実際に新しいプロパティが作成されます。古いプロパティを削除し、HYPERLINK フィールドを更新してから、戻って必要なプロパティ名と値を再作成します。

    最後に、表示テキストが変更されない「A」のアプローチが実際に必要な場合は、ない「base1」ブックマークの値を削除するようなことはしないでください。そうすると、表示テキストがリセットされ、必要なテキストを再作成する HYPERLINK フィールドを再挿入する必要が出てくる可能性があります。これはよくありません。

答え2

単に値を設定したいだけであれば、@yokki の言ったことを使用できます。

ハイパーリンクの場合、Word は「ハイパーリンク ベース」を提供します。したがって、ハイパーリンクに「swagger-ui.html/food-controller」を指定すると、{$hyperlink_base}/swagger-ui.html/food-controller が使用されます。他の Web サイトのハイパーリンクを使用する必要があり、「ハイパーリンク ベース」を使用したくない場合は、完全な URL を使用します。

「ハイパーリンク ベース」を設定するにはどうすればいいですか?

  1. 「ファイル」リボンに移動
  2. 右上の「プロパティ」
  3. それをクリックして「詳細プロパティ」を選択します。
  4. 「概要」タブのみ、最後のフィールドには「ハイパーリンク ベース」が含まれます。

私の場合は、「ec2-13-211-bla-bla.amazonaws.com」に設定しました。

つまり、URL全体ではなく相対パスを指定したすべてのリンクは、

「ec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller」が必要です。

したがって、IP を変更する必要がある場合は、「ハイパーリンク ベース」を更新するだけです。

関連情報