代码之家  ›  专栏  ›  技术社区  ›  wusher

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

  •  5
  • wusher  · 技术社区  · 17 年前

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

    1 回复  |  直到 17 年前
        1
  •  1
  •   HipCzeck    17 年前

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

    如果书签定义的范围包含复选框,则根据复选框的插入方式,它将在 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
    ...
    

    这应该会让您更接近,但是如果复选框的名称是可预测的,那么最好直接用名称来称呼它。