使用vb.net检查单词中的复选框

时间:2013-01-06 04:25:44

标签: vb.net ms-word automation

我有一个带有几个复选框字段的单词doc。我可以填写文本字段,但还没弄清楚如何检查复选框。

我不能只是在单词中创建一个宏,看看单词是如何做的,因为要使用键盘来检查框(空格键),你必须启用文档保护,这会禁用宏创建。

2 个答案:

答案 0 :(得分:0)

每个复选框都有Value属性。您可以将此属性设置为TrueFalse,以选中或取消选中该复选框。

修改

我写了一个小宏来勾选活动文档中的所有框。您可以编辑它以满足您的需求。虽然VBA真的很讨厌,我花了大约15分钟来解决这个问题。

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

答案 1 :(得分:0)

我刚刚尝试使用VBA设置旧时尚 Word2003 Checkbox 。使用了那段代码:

' demo purposes - added a command
Private Sub CommandButton1_Click()
    ' FormFields refers to Word2003 FormFields
    If ActiveDocument.FormFields(1).Type = wdFieldFormCheckBox Then
        ActiveDocument.FormFields(1).CheckBox.Value = True
    End If

   ' ContentControls refers to >= Word2007 Controls - thx to StevenDotNet for the hint
   ActiveDocument.ContentControls(1).Checked = True
End Sub

WordCheckBoxControl_Form

另一方面,我使用VB.net 创建了 VS2012 WordProject,并添加了一些代码来检查加载时的框。

Private Sub ThisDocument_Open() Handles Me.Open
    Me.FormFields(1).CheckBox.Value = True
End Sub