Word 2010 VBA复选框

时间:2014-10-09 14:12:34

标签: vba checkbox ms-word word-2010

希望是一个简单的。 我有一个乱七八糟的Word文档。有没有办法访问这些复选框作为我可以循环并检查/设置ID和值等属性的集合?

作为参考,我已经尝试过ActiveDocument.ContentControls集合;它是空的。 我也尝试过ActiveDocument.Fields。这实际上包含与页面上相同数量的复选框,但我无法将其强制转换为复选框以访问我需要的属性。

最后一个问题是,是否可以为点击动态分配事件处理程序?

提前谢谢

1 个答案:

答案 0 :(得分:0)

文档中嵌入的所有ActiveX字段的集合(假设其名称为ThisDocument)是集合ThisDocument.Fields。此集合的项目是类Field的对象。

要查询此集合中对象的值,您可以使用以下行:

ThisDocument.Fields.Item(1).OLEFormat.Object.Value

要向事件处理程序添加代码,只需右键单击ActiveX控件,然后从上下文菜单中选择“查看代码”。您将获得Click事件处理程序:

Private Sub CheckBox1_Click()
     ' empty if event handler not set, VBA code otherwise '
End Sub

要动态插入代码 ,您需要直接操作代码模块,并逐行添加事件处理程序。这可能很棘手,但基本上,你会做类似的事情:

ThisDocument _
   .VBProject _
   .VBComponents(ThisDocument.CodeName) _
   .CodeModule _
   .InsertLines(<<Line>>, <<String>>)

其中<<Line>>是您要插入的位置(数字),<<String>>是您要插入的文本。请注意不要插入现有SubFunction或自定义类型定义(显然)中间。