1

У меня есть 50-страничный документ Word с флажком ActiveX на каждой странице. Я не хочу, чтобы они отображались при печати документа в любой форме, например на принтере или в формате PDF.

Я погуглил и нашел два примера;

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 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .