我正在尝试创建一个可以在工作中使用的表单模板,该模板可以通过复选框进行自定义。
到目前为止,我一直在考虑在每个段落之前添加复选框,并在按钮末尾添加复选框。 当我单击按钮时,我的意图是删除所有未激活复选框的段落。
问题是我不知道哪种方法最方便用户使用。 我正在考虑为每个段落创建书签,并为每个复选框使用IF公式。 最用户友好的复选框是内容控件,但是我不知道如何在VBA代码中引用它们。
我只能找到有关表单字段复选框的信息,但我不知道如何使它们可单击。
在研究这两个选项中的每一个之前,我有兴趣找出这两个选择中的哪一个更适合满足我的要求。
谢谢!
答案 0 :(得分:1)
我已经做到了我想要的。 首先,我在每个段落之前放置了内容控制复选框,并为每个段落设置了唯一的标签。 然后,对于每个复选框,我都选择了包括该复选框在内的段落,并添加了一个与该复选框完全一样的书签。接下来,我只选择了该复选框,并为该复选框添加了书签名称hide_name。
我添加了一个ActiveX按钮,并单击了以下vba代码:
Private Sub btnSubmit_Click()
Dim bookmark As String
Dim ctl As ContentControl
For Each ctl In ActiveDocument.ContentControls
If ctl.Type = wdContentControlCheckBox Then
If ctl.Checked = False Then
bookmark = ctl.Tag
Bookmarks(bookmark).Range.Font.Hidden = True
Else
bookmark = "hide_" & ctl.Tag
Bookmarks(bookmark).Range.Font.Hidden = True
' DO NOTHING
End If
End If
Next
End Sub
基本上,当我单击“提交”按钮时,代码将验证每个复选框的值为True或False。如果选中,则隐藏复选框;如果未选中,则隐藏整个段落,包括复选框。 这样,在我单击“提交”按钮后,将没有可见的复选框,因此该文档可以打印。