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の古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。