Как прочитать значение флажка в файле слова (* .doc) в VB.net, используя объект Range? - PullRequest
5 голосов
/ 11 ноября 2008

Как мне прочитать значение флажка в файле слова (* .doc) на VB.net, используя объект диапазона?

Это то, что я имею до сих пор:

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» - это закладка для флажка в текстовом документе.

1 Ответ

1 голос
/ 18 июня 2009

По какой конкретной причине вы не читаете значение флажка, используя имя самого флажка?

Если диапазон, определенный вашей закладкой, содержит флажок, то, в зависимости от того, как флажок вставлен, он будет найден либо в коллекции 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
...

Это должно приблизить вас, но если имя флажка предсказуемо, лучше обратиться к нему напрямую по имени.

...