wus*_*her 5 vb.net ms-word office-interop
如何使用范围对象读取VB.net中单词(*.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
Run Code Online (Sandbox Code Playgroud)
其中"MyCheckbox"是word文档中复选框的书签.
您不使用复选框本身的名称读取复选框的值有什么特殊原因吗?
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
...
Run Code Online (Sandbox Code Playgroud)
这应该会让您更接近,但如果复选框的名称是可预测的,最好直接通过名称来寻址。