フォーム内の計算フィールドの更新(Microsoft Word)
Wordを使用すると、情報を収集するためにフィールドに依存する特別なフォームを作成できます。これらのフォームは保護できるため、フォームフィールドの外側のテキストをユーザーが変更することはできません。 _WordTips_の他の問題では、フォームを作成する方法について説明しています。
フォームを作成するときに、フォーム内の計算フィールドの内容をWordに更新させる必要がある場合があります。 [Wordのオプション]ダイアログボックスの[表示]オプションで[印刷前にフィールドを更新する]チェックボックスをオンにすると、ドキュメントの印刷時にフィールドが自動的に計算されます。しかし、計算の結果を確認するためだけにドキュメント全体と古紙を印刷したくない場合はどうでしょうか。
解決策は、単純なマクロを作成し、そのマクロを linkクイックアクセスツールバーに割り当てることです。次のマクロは問題なく動作します:
Sub UpdateFields() Dim rngStory As Range For Each rngStory In ActiveDocument.StoryRanges rngStory.Fields.Update Next rngStory End Sub
保護されたフォームでは他の方法でマクロにアクセスできないため、マクロをクイックアクセスツールバーに追加することが重要です。
もちろん、このアプローチでは、ユーザーがボタンをクリックしてすべてのフィールドを更新することを忘れないでください。必要に応じて、任意のフォームフィールドのOnExitイベントにマクロを割り当てることができます。したがって、フィールドが「終了」されるたびに、マクロが実行されます。ある_WordTips_サブスクライバーは、フィールドを更新するためのOnExitマクロとして次のマクロも提案しました:
Sub UpdateRefsInForm() Application.ScreenUpdating = False If ActiveWindow.View.Type = wdPrintView Then ActiveWindow.ActivePane.View.Type = wdNormalView Else ActiveWindow.View.Type = wdPrintView End If If ActiveWindow.ActivePane.View.Type = wdNormalView Then ActiveWindow.ActivePane.View.Type = wdPrintView Else ActiveWindow.ActivePane.View.Type = wdNormalView End If End Sub
このマクロは、現在のビュー(下書き/通常ビューまたは印刷レイアウトビュー)から他のビューに切り替えてから、元に戻すだけであるという点で、かなり巧妙です。この表示モードの変更により、Wordはフィールドを更新します。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(9628)は、Microsoft Word 2007、2010、2013、および2016に適用されます。Wordの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkフォーム内の計算フィールドの更新。