フォーム内の計算フィールドの更新(Microsoft Word)
Wordを使用すると、情報を収集するためにフィールドに依存する特別なフォームを作成できます。これらのフォームは保護できるため、フォームフィールドの外側のテキストをユーザーが変更することはできません。 _WordTips_の他の問題では、フォームを作成する方法について説明しています。
フォームを作成するときに、フォーム内の計算フィールドの内容をWordに更新させる必要がある場合があります。 [オプション]ダイアログボックスの[印刷]タブで[フィールドの更新]チェックボックスをオンにすると、ドキュメントの印刷時にフィールドが自動的に計算されます。 Word 2000より前のバージョンのWordでは、印刷プレビューを使用すると、フィールドも自動的に計算されます。 (これはWord 2000で変更されました。実際の印刷が必要です。)しかし、計算の結果を確認するためだけにドキュメント全体と古紙を印刷したくない場合はどうでしょうか。
解決策は、単純なマクロを作成し、そのマクロをツールバーボタンに割り当てることです。次のマクロは問題なく動作します:
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 = wdPageView Then ActiveWindow.ActivePane.View.Type = wdNormalView Else ActiveWindow.View.Type = wdPageView End If If ActiveWindow.ActivePane.View.Type = wdNormalView Then ActiveWindow.ActivePane.View.Type = wdPageView Else ActiveWindow.ActivePane.View.Type = wdNormalView End If End Sub
このマクロは、現在のビュー(通常ビューまたはページビュー)から他のビューに切り替えてから、元に戻すだけであるという点で、かなり巧妙です。この表示モードの変更により、Wordはフィールドを更新します。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1445)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ:
linkフォーム内の計算フィールドの更新。