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

如何使用范围对象读取VB.net中word(*.doc)文件中复选框的值?,vb.net,ms-word,office-interop,Vb.net,Ms Word,Office Interop,如何使用范围对象读取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 其中“MyChec

如何使用范围对象读取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文档中复选框的书签

您没有使用复选框本身的名称读取复选框的值有什么特殊原因吗

如果书签定义的范围包含复选框,则根据复选框的插入方式,它将位于
InlineShapes
集合(如果复选框与文本内联插入)或
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
...