Aktualisieren berechneter Felder in einem Formular (Microsoft Word)
Mit Word können Sie spezielle Formulare erstellen, die zum Sammeln von Informationen auf Feldern basieren. Diese Formulare können geschützt werden, sodass Text außerhalb der Formularfelder von Benutzern nicht geändert werden kann. In anderen Ausgaben von WordTips wurden Möglichkeiten zum Erstellen von Formularen erörtert.
Wenn Sie ein Formular erstellen, muss Word möglicherweise manchmal den Inhalt der berechneten Felder im Formular aktualisieren. Wenn Sie das Kontrollkästchen Felder aktualisieren auf der Registerkarte Drucken des Dialogfelds Optionen aktivieren, werden die Felder beim Drucken eines Dokuments automatisch berechnet. In Word-Versionen vor Word 2000 werden die Felder auch automatisch berechnet, wenn Sie die Seitenansicht verwenden. (Das hat sich in Word 2000 geändert. Es wird ein echter Druck benötigt.) Aber was ist, wenn Sie nicht das gesamte Dokument und Altpapier drucken möchten, um zu sehen, wie die Berechnungen aussehen?
Die Lösung besteht darin, ein einfaches Makro zu erstellen und das Makro einer Symbolleistenschaltfläche zuzuweisen. Das folgende Makro reicht völlig aus:
Sub UpdateFields() Dim rngStory As Range For Each rngStory In ActiveDocument.StoryRanges rngStory.Fields.Update Next rngStory End Sub
Es ist wichtig, dass das Makro einer Symbolleistenschaltfläche zugewiesen wird, da ein geschütztes Formular keinen Zugriff auf Makros über das Menü ermöglicht.
Dieser Ansatz erfordert natürlich, dass der Benutzer daran denkt, auf die Schaltfläche zu klicken, um alle Felder zu aktualisieren. Wenn Sie möchten, können Sie das Makro dem OnExit-Ereignis eines beliebigen Formularfelds zuweisen. Jedes Mal, wenn das Feld „verlassen“ wurde, wurde das Makro ausgeführt. Ein WordTips-Abonnent schlug außerdem das folgende Makro als OnExit-Makro vor, um Felder zu aktualisieren:
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
Dieses Makro ist insofern ziemlich clever, als es lediglich von der Ansicht, in der Sie sich befinden (Normal- oder Seitenansicht), zur anderen Ansicht und dann wieder zurück wechselt. Diese Änderung im Ansichtsmodus zwingt Word, die Felder zu aktualisieren.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (1445) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: