テーブルを使用して Word のフィールドを更新する

テーブルを使用して Word のフィールドを更新する

MS Word レポートに次の機能を実装したいと思います。これが可能かどうか、またどのように可能かはわかりません。

参考までに、私が思い描いているイメージは次のとおりです。

私が望むものの例

  1. レポートの冒頭に、すべてのパラメータを含む入力テーブルを含めます。
  2. レポートのコンテンツ全体にわたって、テーブル内の入力が変更されたときに変更されるフィールドを設定します。
  3. 例: PARAMETER 1 を 100 に設定すると、コンテンツ セクション内のすべての PARAMETER 1 が自動的に 100 に変更されます。

ありがとう

答え1

この要件は VBA で実装する必要があると思います。

VBAコンソールを開く: 「Alt + F11」をクリック

以下は、画面録画によって生成されたマクロです。参照できます。

Sub Macro5()
Selection.TypeText Text:="100"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
        .Text = "parameter1"
        .Replacement.Text = "100"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.TypeText Text:="200"
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "parameter2"
        .Replacement.Text = "200"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.TypeText Text:="300"
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "parameter3"
        .Replacement.Text = "300"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

変数の値を制御するには、次の 2 つのパラメータを変更するだけです。

TypeText Text:="XX" Replacement.Text = "XX"

答え2

ご希望のものにかなり近い方法を見つけたと思いますが、ドキュメント内のテーブルの代わりに、ドキュメントの詳細プロパティを使用する必要があります。

以下は、最初から実行した手順です (Windows 上の最新バージョンの Word の場合)。

  1. 新しいドキュメントを作成する
  2. ファイル ➡ プロパティ (右上) ➡ 詳細プロパティに移動します。

ここに画像の説明を入力してください

  1. 次に表示されるウィンドウの[カスタム]タブに移動します
  2. ここでは、カスタム ドキュメント プロパティを作成できます。これを使用して、以下の GIF に示すようにパラメーター値を保存できます (タイプミスで申し訳ありません)。

ここに画像の説明を入力してください

  1. では、文書に戻ってください。フィールドコードドキュメントのプロパティを表示します。

  2. 最も簡単な方法は、パラメータ テキストを表示する場所に移動し、CTRL+を押してF9入力しDOCPROPERTY parameter_name \* MERGEFORMAT、 を押してF9ドキュメント内のすべてのフィールドコード (作成したフィールドコードも含む) を更新することです。

ここに画像の説明を入力してください

  1. パラメータを表示させたい場所ごとにこれを繰り返します

ドキュメント全体でパラメータ値を変更するには、詳細プロパティ (手順 2-3) でパラメータ値を更新し、ドキュメントに戻って を押してすべてのフィールドコードを更新しますF9

ここに短いデモがあります:

ここに画像の説明を入力してください

関連情報