Rangeオブジェクトを使用してVB.netのワード(* .doc)ファイルのチェックボックスの値を読み取るにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/281990

  •  08-07-2019
  •  | 
  •  

質問

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

where" 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
...

これにより近づきますが、チェックボックスの名前が予測可能な場合は、名前で直接アドレスする方が良いでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top