不要打印ActiveX复选框


1

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

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


第二个bode块如果包含错误则是一个单独的问题。第一个仅适用于第一页,因为它只针对每个页面执行一次,我假设您没有多个相同的字段。编写一个函数,确定您在文档中的页数并更改其值 ffld 基于此。
Ramhound

Answers:


2

所以终于发现了一些有效的东西 - 不是最优雅的解决方案,但它有效。

链接

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

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.