ActiveX-Kontrollkästchen nicht drucken

998
Jonny Wright

Ich habe ein 50-seitiges Word-Dokument mit einem ActiveX-Kontrollkästchen auf jeder Seite. Ich möchte nicht, dass diese angezeigt werden, wenn ich das Dokument in irgendeiner Form ausdrucken, z. B. auf einem Drucker oder als PDF.

Ich habe gegoogelt und zwei Beispiele gefunden.

Sub ChangeHidden2() Dim doc As Word.Document Dim rngSearch As Word.Range Dim ffld As Word.FormField  Set doc = ActiveDocument Set ffld = doc.FormFields("check1") Set rngSearch = ffld.Range.Paragraphs(1).Range rngSearch.Start = ffld.Range.End rngSearch.Text = "Good" End Sub 

Aber dies versteckt nur die erste Checkbox, nicht alle, und;

Sub HideFormsChBx() Dim doc As Word.Document Dim cBx As Word.FormField Dim cntrl As Word.CheckBox  Set doc = ActiveDocument Set cBx = doc.FormFields("Check1") Set cntrl = doc.FormFields("Check2").CheckBox If doc.ProtectionType <> wdNoProtection Then _ doc.Unprotect cBx.Range.Font.Hidden = cntrl.Value doc.Protect wdAllowOnlyFormFields, True End Sub 

Was für mich einfach nicht zu funktionieren scheint (diverse Fehler).

1
Der zweite Bode-Block ist, wenn er Fehler enthält, ein separates Problem. Die erste funktioniert nur für die erste Seite, da sie nur einmal für jede Seite ausgeführt wird und ich nehme an, Sie haben nicht mehrere Felder desselben Feldes. Schreiben Sie eine Funktion, die bestimmt, wie viele Seiten Sie im Dokument gespeichert haben, und ändern Sie den Wert von "ffld" auf dieser Grundlage. Ramhound vor 9 Jahren 0

1 Antwort auf die Frage

2
Jonny Wright

Also endlich etwas gefunden, was funktioniert - nicht die eleganteste Lösung, aber es funktioniert.

Verknüpfung

Erstellen Sie einen neuen Textstil (in diesem Beispiel heißt er "ausgeblendet") und verwenden Sie diesen Textstil für alle Elemente, die Sie ausblenden möchten. Dann verwenden Sie diesen Code.

Private Sub CommandButton1_Click() With ActiveWindow.View .ShowHiddenText = False .ShowAll = False End With Options.PrintHiddenText = False With ActiveDocument .Styles("Hidden").Font.Hidden = True .PrintOut Copies:=1 .Styles("Hidden").Font.Hidden = False End With End Sub