Cómo encontrar variables de documento en MS Word sin usar una macro

10

Tengo un documento con algunas variables de documento y estoy tratando de usar esas variables en el documento. Pero dado que las variables son establecidas por un sistema externo (que no está bien documentado), estoy jugando un juego de adivinanzas. Supongo que existe una variable con "última fecha de revisión" y luego empiezo a adivinar cómo se podría haber llamado esa variable.

¿Hay alguna manera de enumerar todas las variables de documento en un documento de MS Word y sus valores para que uno pueda buscarlas cuando las use en el documento? (Estoy trabajando en MS Office 2010)

algun usuario
fuente

Respuestas:

13

Word tiene varios tipos diferentes de "variable". Hay cosas conocidas como "Variables del documento", pero hay otras cosas que denominaré "propiedades". Intentaré enumerar los tipos principales a continuación.

Hay algunos lugares en Word en los que puede buscar para encontrar algunos tipos de propiedades, pero para las "variables" verdaderas y otros tipos de propiedades, si no puede usar macros u otro código, necesitará descomprimir el archivo .docx y mira los diversos archivos allí.

Lugares que puede buscar en Word 2010 (aquí no se muestran variables de documento) ...

a. En "Backstage", mire la pestaña Archivo, la opción Información, y debería ver algunas propiedades listadas a la derecha. Haga clic en "Mostrar todas las propiedades" al final de la lista y puede ver más.

si. En la pestaña Insertar, Grupo de texto, Partes rápidas-> Propiedades, debería ver una lista de "Propiedades incorporadas + algunas o todas las propiedades insertadas por Sharepoint si eso es lo que está utilizando.

C. En el "Panel de información del documento" (DIP). Si no ve eso, vaya al menú Archivo, luego a Opciones, luego (diga) Barra de herramientas de acceso rápido. Seleccione "Elegir comandos" en "Todos los comandos", luego busque "Propiedades", selecciónelo y haga clic en el botón Agregar. Entonces debería ver un icono en la barra de herramientas de acceso rápido que tiene una pequeña "i" blanca sobre un fondo azul circular. Haga clic en eso y debería ver algunas propiedades integradas (Autor, Título, etc.) o algunas propiedades de "Tipo de contenido" de Sharepoint, si está utilizando SharePoint. Es posible que pueda alternar entre una de varias vistas allí. Si luego hace clic en el menú desplegable en la parte superior izquierda del DIP y selecciona "Propiedades avanzadas", verá un cuadro de diálogo de varias pestañas que muestra

  • algunas propiedades "incorporadas"

  • Propiedades de documento personalizadas "definidas por el usuario" de estilo antiguo.

Para todo lo demás, probablemente tendrá que buscar en el XML en el .docx. Para hacer eso, haga una copia de su documento. Digamos que la copia se llama mydoc.docx. Cambie el nombre a mydoc.docx.zip, abra el zip, luego busque varias cosas, como se sugiere a continuación ...

a. Las variables de documento verdaderas se almacenan en la carpeta de palabras, en settings.xml, en un elemento llamado w: docVars. Debería ver un nombre y un valor para cada variable. Puede insertar los valores de Variables del documento en su documento utilizando un campo {DOCVARIABLE variablename}.

si. Propiedades del documento integradas, incluidos elementos como autor, título, etc. En la mayoría de los casos, los valores se pueden insertar en el documento utilizando campos especializados como {AUTOR} o, en algunos casos, campos {DOCPROPERTY}. Aunque es un poco desordenado, hay una lista estándar de nombres. Puede encontrar la mayoría de los valores en la carpeta docProps en los archivos core.xml y app.xml. Sin embargo, algunas (las "Propiedades de la página de portada") se almacenan, si se usan, en uno de los archivos "item.xml" (por ejemplo, "item1.xml" en la carpeta customXml.

C. propiedades de documento personalizadas "definidas por el usuario" de estilo antiguo que consisten principalmente en pares de nombre / valor cuyos valores se pueden insertar en el documento utilizando campos {DOCPROPERTY}, por ejemplo, {DOCPROPERTY mycustomproperty}. Estos se muestran en el cuadro de diálogo Propiedades avanzadas ...., pero en el .docx están en el archivo custom.xml en la carpeta docProps.

re. propiedades personalizadas de nuevo estilo, también conocidas como "propiedades de Sharepoint" o "propiedades de tipo de contenido", porque a menudo se crean y se completan a partir de columnas en una lista de Sharepoint. Los valores se almacenan en "Partes XML personalizadas" y se pueden insertar usando los Controles de contenido que se han configurado para apuntar al bit relevante de XML. (Word 2007 y posterior solamente). En el .docx, encontrará una serie de "esquemas" para estas variables y los valores de las variables en la carpeta customXML, en los archivos llamados "item1.xml", "item2.xml", etc.

mi. finalmente, cualquier desarrollador puede poner sus propias partes XML personalizadas en un documento de Word y conectar controles de contenido a elementos y atributos en esas partes XML personalizadas. No intentaré entrar en detalles sobre cómo se hace, pero encontrará los datos en los archivos item1.xml, item2.xml, etc. en customXML. Sin embargo, para encontrar los controles de contenido en sí mismos, sus nombres y lo que están conectados también, normalmente necesitaría buscar en la carpeta de palabras, por ejemplo, document.xml, y quizás uno o más de "encabezado" y "pie de página". archivos xml

Chris
fuente
Gran respuesta. ¡Gracias! Una nota: "b. En la pestaña Insertar, grupo de texto, Partes rápidas-> Propiedades, debería ver una lista de" Propiedades incorporadas + algunas o todas las propiedades insertadas por Sharepoint si eso es lo que está utilizando ". En mi configuración Quick Parts no parece tener "Propiedades"
algún usuario
Mi error - eso debería ser Quick Parts-> Document Property
Las propiedades y las variables de documento parecen bastante similares en cómo puede usarlas en campos de palabras y VBA. ¿Hay alguna compensación?
BenPen el
5

Estaba teniendo un problema similar Algunas cajas de herramientas de terceros se estaban bloqueando y necesitaba establecer un valor variable.

Es un poco tosco, pero aquí hay un código de VBA que incluí que enumerará todas las variables de la ActiveDocument.Variablescolección;

Public Sub ListAllVariables()
    Dim V As Variable, S As String
    For Each V In ActiveDocument.Variables
        S = S & V.Name & vbTab & V.Value & vbNewLine
    Next V
    MsgBox S
End Sub

Puede crear una nueva macro y volcarla allí, lo que debería proporcionarle la información. Cuando haya encontrado el nombre de la variable que le interesa, puede configurarlo con

ActiveDocument.Variables("MyVariable") = "Value"
Steztric
fuente
2
Esto es genial, gracias. Es una lástima que Microsoft no haya proporcionado un tipo de ventana de selección preempaquetada a la que le asigne una colección y obtenga una ventana emergente de dos columnas que le permite seleccionar uno o más elementos de la colección (o agregar un nuevo valor a la colección real) y luego permite que su código VBA acceda a los elementos seleccionados en la sub / función de llamada.
BenPen