5

範囲オブジェクトを使用して 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

ここで、「MyCheckbox」はワード文書のチェックボックスのブックマークです。

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 に答える