5

如何使用范围对象在 VB.net 中的 word (*.doc) 文件中读取复选框的值?

这是我到目前为止所拥有的:

Dim app As New Word.Application
Dim doc As Document
doc = app.Documents.Open("C:\myDoc.doc")
dim chkBox as Bookmark
chkBox = doc.Bookmarks("MyCheckbox")
Dim rng as Range
rng = chkBox.Range

其中“MyCheckbox”是word文档中复选框的书签。

4

1 回答 1

1

您没有使用复选框本身的名称读取复选框的值的任何特殊原因?

如果您的书签定义的范围包含一个复选框,则根据插入复选框的方式,它将在InlineShapes集合(如果复选框与文本内联插入)或Shapes集合(如果作为浮动对象插入)中找到。

然后,您需要遍历 Shapes 或 InlineShapes 的集合以查找相关复选框。

遍历 InlineShapes 集合中的控件

Dim ctl As InlineShape
For Each ctl In rng.InlineShapes
    If ctl.Type = wdInlineShapeOLEControlObject Then
        If ctl.OLEFormat.ClassType Like "Forms.CheckBox*" Then
            'current version of ctl is a checkbox, do what you will with it.

        End If
    End If
Next ctl
...

这应该让你更接近,但如果复选框的名称是可预测的,最好直接通过名称来解决它。

于 2009-06-18T19:54:43.917 回答