不打印 ActiveX 复选框

不打印 ActiveX 复选框

我有一个 50 多页的 Word 文档,每页都有一个 ActiveX 复选框。我不希望在以任何形式(即打印机或 PDF)打印文档时显示这些复选框。

我在 Google 上搜索了一下,发现了两个例子;

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

但这只会隐藏第一个复选框,而不是全部,并且;

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

这对我来说似乎不起作用(各种错误)。

答案1

因此最终找到了一种可行的方法 - 虽然不是最优雅的解决方案,但它确实有效。

关联

创建一个新的文本样式(在本例中称为“隐藏”),并将此文本样式用于要隐藏的任何项目。然后使用此代码;

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

相关内容