Word-Formularfelder zurücksetzen auf Standardwerte
In Word-Formularen, die mit Formularfeld-Steuerelementen erstellt wurden, können zu den Textfeldern und Kontrollkästchen Standardwerte vorgegeben werden. Bei einer Dropdownliste (Kombinationsfeld) ist der erste Eintrag der Standardwert. Wenn Eingaben in den Feldern gemacht wurden bzw. diese aktiviert/deaktiviert wurden oder Einträge ausgewählt sind, dann möchte man manchmal die Formularfelder zurücksetzen. Damit das nicht bei jedem Feld einzeln durchgeführt werden muss, gibt es eine Schaltfläche mit einem Radiergummi-Symbol, mit der alle Formularfelder auf die Standardwerte zurückgesetzt werden. Sie befindet sich wie die übrigen Formularfeld-Steuerelemente in Word 2010 unter Formulare aus Vorversionen (in Word 2007 Legacyformulare, davor in der Symbolleiste Formulare). Die nachfolgende Beschreibung ist mit Word 2010 erstellt. In anderen Versionen sind die Abbildungen und die Vorgehensweise ähnlich.
Die Zurücksetzen-Schaltfläche funktioniert nur, wenn das Formular sich nicht im geschützten Modus befindet. Im geschützten Modus sind, bis auf die Ausnahme Feldschattierung, alle Schaltflächen im Bereich Formulare aus Vorversionen deaktiviert.
Da im ungeschützten Modus wiederum die Formularfelder nicht ausgefüllt werden können, muss man unter Umständen ständig den Formularschutz aufheben, die Formularfelder zurücksetzen und das Dokument wieder schützen. Die Idee, die Aufhebung des Schutzes, den Klick auf die Zurücksetzen-Schaltfläche und das erneute Schützen des Dokuments in einem Makro aufzuzeichnen und einer ActiveX-Schaltfläche zuzuordnen, ist deshalb nicht durchführbar, weil im geschützten Modus keine Makros aufgezeichnet werden können. In solchen Fällen müssen die einzelnen Schritte (Schutz aufheben, Formularfelder zurücksetzen, Schutz einschalten) mit VBA programmiert werden. Nachfolgend ein Beispiel für Formulare ohne Kennwort.
ActiveX-Schaltfläche zum Zurücksetzen der Formularfelder bei Formularen ohne Kennwort
Zunächst wird im Entwurfsmodus eine ActiveX-Befehlsschaltfläche eingefügt. Die Breite der Schaltfläche kann über die Rahmenpunkte vergrößert werden, damit der Text "Felder zurücksetzen" auf die Schaltfläche passt.
Im nächsten Schritt soll zunächst der Text auf der Schaltfläche geändert werden. Hierfür wird die Schaltfläche markiert und auf die Schaltfläche Eigenschaften geklickt. Es öffnet sich ein Fenster, in dem die Eigenschaften festgelegt werden können. Der neue Text wird unter Caption eingegeben.
Danach wird mit einem Doppelklick auf die Schaltfläche das VBA-Fenster geöffnet, in dem der Code zum Aufheben des Dokumentenschutzes, zum Zurücksetzen aller Formularfelder und zum erneuten Einschalten des Dokumentenschutzes eingegeben wird. Das ganze erfolgt unterhalb des Projektknotens für das Dokument. Der Code ist wie folgt:
Private Sub CommandButton1_Click()
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
ActiveDocument.Unprotect Password:=""
ActiveDocument.ResetFormFields
ActiveDocument.Protect Password:="", Type:=wdAllowOnlyFormFields, NoReset:=False
End If
End Sub
Zu beachten ist hierbei, dass die erste Zeile anders sein kann, wenn der Name der Schaltfläche z.B. nicht wie in dem Code CommandButton1 heißt. In dem Fall muss der Name im Code an der entsprechenden Stelle richtig gesetzt werden.
In diesem Beispiel ist das Dokument mit einem leeren Passwort geschützt. Soll die Aufhebung und Wiedereinrichtung des Schutzes mit einem Passwort erfolgen, kann das Passwort innerhalb der Anführungszeichen bei Password:="" eingegeben werden. Zum Schluss wird das VBA-Fenster über Datei - Schließen und zurück zu Microsoft Word geschlossen.
Um die Schaltfläche zu testen, wird der Entwurfsmodus beendet, das Dokument geschützt und nur das Ausfüllen des Formulars zugelassen. Wird im geschützten Modus auf die erstellte Schaltfläche geklickt, sollten die Formularfelder zurückgesetzt werden.
ActiveX-Schaltfläche nicht drucken
Bei Druckvorgängen wird die ActiveX-Schaltfläche mit ausgedruckt. Das ist häufig unerwünscht. Um das Drucken der Schaltfläche zu unterbinden, kann man diese ausblenden. Sie ist im Dokument zwar weiterhin sichtbar, wird jedoch nicht ausgedruckt, wenn in den Word-Optionen der Punkt Ausgeblendeten Text drucken deaktiviert ist.
Um die Schaltfläche auf diesem Wege auszublenden, muss der Entwurfsmodus eingeschaltet werden. Ist der Entwurfsmodus ausgeschaltet, können ActiveX-Schaltflächen grundsätzlich auch ohne Dokumentenschutz genutzt werden. In dem Beispielcode ist jedoch eine Abfrage, die veranlasst, dass die programmierten Schritte nur ausgeführt werden, wenn man sich im geschützten Modus befindet. Das könnte man auch so programmieren, dass das Zurücksetzen im ungeschützten Modus funktioniert.
Speichern als Word-Dokument mit Makros
Die Schaltfläche funktioniert zwar, ohne dass man das Dokument speichern muss. Wenn es jedoch im Dateiformat .docx gespeichert wird, wird der programmierte Code entfernt und beim erneuten Öffnen nicht mehr vorhanden. Damit der Code auch nach dem Speichern erhalten bleibt, wählt man beim Speichern als Dateityp Word-Dokument mit Makros (*.docm) aus.
Je nach Sicherheitseinstellungen kann beim Öffnen von einem Word-Dokument mit Makros eine Sicherheitswarnung angezeigt und aktive Inhalte wie Makros deaktiviert werden. Die Makros sind in solchen Fällen erst verfügbar, wenn sie aktiviert werden. Bei einer Aktivierung der Inhalte wird das Dokument standardmäßig zu den vertrauenswürdigen Dokumenten hinzugefügt, so dass die Sicherheitswarnung beim Öffnen des Dokuments in Zukunft nicht angezeigt wird. Unter Einstellungen für das Sicherheitscenter kann man verschiedene Einstellungen diesbezüglich vornehmen.