我有一个 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