visual variable valor una sub sistema refrescar parametros para hoja con comandos codigos codigo celda biblioteca asignar vb.net ms-word office-interop

vb.net - variable - sistema de biblioteca en visual basic 2010



¿Cómo leo el valor de una casilla de verificación en un archivo de palabra(*.doc) en VB.net usando un objeto Range? (1)

¿Cómo leo el valor de una casilla de verificación en un archivo de palabra (* .doc) en VB.net usando un objeto de rango?

Esto es lo que tengo hasta ahora:

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

donde "MyCheckbox" es el marcador de la casilla de verificación en el documento de Word.


¿Alguna razón en particular por la que no está leyendo el valor de la casilla usando el nombre de la casilla de verificación?

Si el rango definido por su marcador contiene una casilla de verificación, dependiendo de cómo se inserte la casilla, se encontrará en la colección InlineShapes (si casilla de verificación insertada en línea con el texto) o en la colección Shapes (si está insertada como un objeto flotante) .)

Debería iterar a través de la colección de Shapes o InlineShapes buscando la casilla en cuestión.

Iterando a través de controles en la colección 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 ...

Esto debería acercarlo más, pero si el nombre de la casilla de verificación es predecible, es mejor abordarlo directamente por su nombre.