清除Word文档中的所有复选框

时间:2018-08-02 03:17:28

标签: vba ms-word word-vba

我工作场所的一位经理已决定推出其中包含一千多个复选框的文档。

有一个按钮可以清除所有复选框,但是她写出的每一行都像这样:

Checkbox1.Value = False
Checkbox2.Value = False
...
Checkbox999.Value = False
Checkbox1000.Value = False

现在,作为IT服务台人员,我必须解决打开该文档时部门中每个人的延迟都超过60秒的问题。

我们俩都是傻瓜,我想她刚刚上线获取代码。

谁能分享一种快速清除所有复选框的快速方法?

可以加快速度吗?

谢谢。

PS我发现此代码可在Excel中使用,尽管我不知道如何使其适应Word ...

Sub ClearCheckBoxes()
    Dim chkBox As Excel.CheckBox
    Application.ScreenUpdating = False
    For Each chkBox In ActiveSheet.CheckBoxes
            chkBox.Value = xlOff
    Next chkBox
    Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:0)

您发布的Excel VBA代码可以相当容易地转换为Word VBA(如果您知道要用Google做什么)

通过使用宏记录器,我发现复选框在Word中称为内容控件。 (More is explained in the MSDN Docs here.)然后,您只需要内容控件类型“ wdContentControlCheckBox”即可获得所有复选框。

此代码应满足您的要求:

Sub ClearCheckBoxes()
    Dim ctrl As Word.ContentControl
    For Each ctrl In ActiveDocument.ContentControls
            If ctrl.Type = wdContentControlCheckBox Then
                ctrl.Checked = False
            End If
    Next ctrl
End Sub