Compartir a través de


Controles de contenido en Word

Aprenda cómo los controles de contenido de Microsoft Word 2013 permiten una mayor variedad de escenarios de documentos estructurados.

En este artículo se ofrece información sobre los cambios en los controles de contenido en Microsoft Word 2013 y los escenarios de documentos que dichos cambios permiten.

Documentos estructurados

Los documentos estructurados son documentos que controlan dónde puede aparecer el contenido en un documento, el tipo de contenido que puede aparecer en el documento y si dicho contenido se puede editar.

Estos son algunos de los escenarios habituales de contenido estructurado en Microsoft Word:

  • Una asesoría jurídica necesita crear documentos que contienen lenguaje legal que no debería ser modificado por el usuario.

  • Una empresa necesita crear una portada de propuesta en la que el usuario solo escribe el título, el autor y la fecha.

  • Una empresa necesita crear facturas en las que los datos del cliente aparezcan en la factura en zonas predefinidas.

Uso de controles de contenido para estructurar un documento

Los controles de contenido son entidades de Microsoft Word que actúan como contenedores de contenido específico en un documento. Los controles de contenido individuales pueden incluir contenido como fechas, listas o párrafos de texto con formato. Estos controles de contenido le permiten crear bloques avanzados y estructurados de contenido, diseñados para su uso en plantillas que insertan bloques bien definidos en sus documentos, creando así documentos estructurados.

Los controles de contenido son ideales para crear documentos estructurados porque los controles de contenido le ayudan a fijar la posición de contenido, especificar el tipo de contenido (por ejemplo, una fecha, una imagen o texto), restringir o habilitar la edición, y agregar significado semántico al contenido.

Controles de contenido en Word 2010

Los siguientes controles de contenido están disponibles en Word 2010:

  • Texto enriquecido

  • Texto sin formato

  • Imagen

  • Galería de bloques de creación

  • Cuadro combinado

  • Lista desplegable

  • Fecha

  • Casilla de verificación

  • Grupo

Los controles de contenido de Word 2010 permiten varias posibles soluciones de documentos estructurados; sin embargo, es en Word 2013 donde los controles de contenido permiten una mayor variedad de escenarios.

Mejoras a los controles de contenido en Word 2013

En Word 2013, los controles de contenido proporcionan tres mejoras clave: visualización mejorada, compatibilidad con la asignación XML para controles de contenido de texto enriquecido y un nuevo control de contenido para el contenido de repetición.

Visualización mejorada

Word 2013 permite que un control de contenido individual aparezca en uno de estos tres estados posibles:

  • Rectángulo de selección

  • Etiquetas de inicio o finalización

  • Ninguno

Nota:

A menos que se indique lo contrario, en esta sección se explica la visualización de controles de contenido cuando el documento no se está viendo en Modo Diseño. El modo de presentación de un control de contenido se establece mediante el control de lista desplegable Mostrar como en el cuadro de diálogo Propiedades del control de contenido.

Figura 1. Cuadro de diálogo Propiedades del control de contenido

Captura de pantalla del cuadro de diálogo Propiedades del control de contenido cuadro

También puede establecer el modo de presentación de un control de contenido mediante el modelo de objetos de Word 2013 (esto se explica más adelante, en la sección Nuevos miembros del modelo de objetos de controles de contenido de Word 2013).

Rectángulo de selección

La representación predeterminada para los controles de contenido en Word 2013 es conservar el aspecto de los controles de contenido tal como aparecen en Word 2007 y Word 2010: es decir, como un rectángulo de selección. Cuando un control de contenido está establecido para que aparezca como Rectángulo de selección, la visualización cambia según la interacción del usuario siguiente:

  • Cuando el control de contenido no tiene el foco, no se produce ninguna visualización

  • Al pasar el mouse sobre él, el control de contenido aparece como un rectángulo sombreado

Figura 2. Control de contenido al pasar el mouse sobre él.

Control de contenido al pasar el mouse sobre

  • Cuando el control de contenido tiene el foco (cuando el usuario elige el control de contenido), el control aparece como un "rectángulo de selección" (con una línea alrededor del contenido y la exhibición de título, si se ha definido un título).

Figura 3. Control de contenido con foco

Control de contenido con foco

Etiquetas de inicio o finalización

Cuando se establece el control de contenido para que aparezca como Etiqueta de inicio o finalización, las etiquetas se muestran con independencia de la interacción del usuario y nunca aparecerá el título; sin embargo, los botones, como el botón Lista desplegable, aparecen al pasar el mouse sobre él.

Figura 4. Control de contenido establecido para aparecer como etiquetas de inicio o finalización

Control de contenido establecido para mostrar como etiquetas de inicio y finalización

Ninguno

Cuando se establece el control de contenido para que aparezca como Ninguno, no se muestra el control de contenido.

Coloración del control de contenido

Además de permitir un tipo diferente de visualización para un control de contenido, Word 2013 también le ayuda a establecer el color de un control de contenido individual. Para configurar el color de un control de contenido, use el botón Color del cuadro de diálogo Propiedades del control de contenido.

También puede definir el color de un control de contenido mediante el modelo de objetos de Word 2013 (esto se explica más adelante, en la sección Nuevos miembros del modelo de objetos de controles de contenido de Word 2013).

Figura 5. Cuadro de diálogo Propiedades del control de contenido

Cuadro de diálogo Propiedades de control de contenido contenido

Compatibilidad con la asignación XML para controles de contenido de texto enriquecido

Word 2013 le ayudará a asignar el contenido de los controles de contenido de texto enriquecido y los controles de contenido de los bloques de creación de documentos en el almacén de datos XML. Para ello, se establece la asignación XML para el control de contenido. Puede establecer esta propiedad usando el método existente XMLMapping.SetMapping del modelo de objetos. En el elemento XML personalizado, el XML personalizado se almacena como formato Open XML plano convertido en una cadena (mediante codificación estándar de XML), por lo que se puede almacenar como un nodo de texto en el elemento XML personalizado. Sin embargo, la asignación correcta sigue estando limitada a atributos o nodos de hoja.

Nota:

Los controles de contenido de texto enriquecido no pueden contener otros controles de contenido de texto enriquecido. Si uno existe dentro de otro (por ejemplo, debido a una manipulación del formato de archivo, mediante copiar y pegar, etc.), se desvincula hasta que deja de estar contenido dentro de un control de texto enriquecido.

Para obtener más información acerca de cómo configurar la asignación XML, consulte la sección Nuevos miembros del modelo de objetos de controles de contenido de Word 2013 más adelante en este tema.

Compatibilidad con contenido de repetición

Además de las mejoras de visualización y el soporte para la asignación XML a los controles de contenido de texto enriquecido, Word 2013 también agrega un nuevo control de contenido que le permite repetir el contenido. El control de contenido para repetición de secciones repite el contenido dentro del mismo, incluidos otros controles de contenido.

El control de contenido para repetición de secciones se inserta alrededor de párrafos enteros o de filas de tablas. Una vez que el control rodea una sección, puede insertar copias de la sección encima o debajo de la sección contenida.

Figura 6. Menú contextual del control de contenido para repetición de secciones

Captura de pantalla de contexto de control de contenido de sección repetición

Puede repetir la sección insertada mediante el control al final del control de contenido (que se muestra como un botón con un signo más ()) o eligiendo un comando en el menú contextual, como se muestra en la figura 6. El contenido repetido pasa a ser una sección independiente del control a la que puede asignar un título a través del cuadro de diálogo Propiedades del control de contenido.

Figura 7. Asignar un título de sección en el cuadro de diálogo Propiedades del control de contenido

Captura de pantalla del cuadro de diálogo Propiedades de control ontent Cuadro de diálogo Propiedades de

Una vez que ha asignado un título a la sección, si selecciona Permitir a usuarios agregar y quitar secciones en el cuadro de diálogo Propiedades del control de contenido, los usuarios podrán agregar o eliminar la sección por su nombre.

Figura 8. Usar el menú contextual del control de contenido para repetición de secciones para eliminar una sección

Contexto de control de contenido de sección repetición Contexto de

Cuando un control de contenido para repetición de secciones rodea a otros controles de contenido, los controles de contenido rodeados se repiten en cada nuevo elemento; pero el contenido de dichos controles de contenido se restablece a texto de marcador de posición. Hay dos excepciones en las que se conserva el contenido del control secundario:

  • Cuando un control secundario es un control para repetición de secciones.

  • Cuando un control secundario se asigna mediante XML a un nodo fuera del control de contenido para repetición de secciones.

Figura 9. Control de contenido para repetición de secciones que contiene controles secundarios antes de la repetición

Control de contenido de sección repetición antes de repetir control

Figura 10. Control de contenido para repetición de secciones que contiene controles secundarios después de la repetición

Control de contenido de sección repetición después

Controles de contenido de para repetición de secciones alrededor de los controles asignados XML

Para asignaciones XML que estén contenidas en una sección de repetición, Word 2013 las asigna como se muestra a continuación.

Si la asignación no interseca con un elemento del grupo de nodos como parte de su cadena primaria, el enlace es un "enlace absoluto" y muestra el mismo contenido en todos los elementos de sección de repetición.

Si la asignación sí interseca con un elemento del grupo de nodos como parte de su cadena primaria, el enlace es un "enlace relativo" y se reasigna de la siguiente manera:

  • Se determina el enlace absoluto del nodo (reduciendo cualquier expresión de consulta), esto debería suceder en la asignación inicial.

  • Se quita el eje del enlace que interseca con el grupo de nodos.

  • El resto de la XPath se evalúa en relación con la XPath del elemento de contenido de la sección de repetición.

Por ejemplo, podrían producirse las siguientes asignaciones:

  • La sección de repetición se asigna a \root\next\path.

  • El control en el elemento de ejemplo se asigna a \root\next\path[2]\baz.

  • Word hace coincidir \root\next\path[2] con un elemento del grupo de nodos.

Por lo tanto, el enlace se evalúa como .\baz, donde la base es el nodo del elemento de contenido de repetición.

Las siguientes sugerencias para trabajar con controles para repetición de contenido pueden ayudar a evitar la pérdida de datos y evitar frustraciones.

Trabajo con controles de contenido para repetición de secciones que están asignados a datos XML

Si inserta un control de contenido para repetición de secciones que está asignado a datos XML, cada vez que el usuario vuelva a abrir el documento, Word recrea los elementos de sección de repetición, según la información del almacén de datos. Incluso si guarda el documento, se perderán los cambios realizados por el usuario en los elementos de sección de repetición del documento que no se hayan asignado también en el almacén de datos.

Para impedir que esto ocurra, bloquee el control de contenido para repetición de secciones y permita que el usuario solo pueda modificar los controles de contenido secundarios desbloqueados que también estén asignados al XML.

Enlace de un control de contenido para repetición de secciones a una tabla

Si desea enlazar un control de contenido para repetición de secciones a una tabla, inserte la tabla y después inserte el control de contenido para repetición de secciones y no al revés. (De lo contrario, no podrá seleccionar solo la tabla).

Anidamiento de controles de contenido para repetición de secciones dentro de una tabla

El anidamiento ajustado de controles de contenido para repetición de secciones dentro de una tabla (por ejemplo, cuando el final del control de contenido para repetición de secciones principal y el secundario se encuentran en la misma celda) provoca que la sección de repetición externa se elimine cuando se agregue o se quite algún elemento de la sección interna.

Puede evitar que esto ocurra agregando un marcador de párrafo entre el final de un control de contenido para repetición de secciones y el siguiente. Para ocultar el marcador de párrafo, anule la selección de la opción Mostrar u ocultar de la ficha Inicio en la cinta de opciones.

Adiciones al esquema de formato de archivo Open XML

Se han agregado los siguientes elementos al esquema de formato de archivo Open XML de WordprocessingML.

Tabla 1. Nuevos elementos en el esquema de formato de archivo Open XML de WordprocessingML para controles de contenido

Elemento Description
<w:appearance>
<w:appearance> es un elemento secundario de <w:sdtPr>. Los valores siguientes son válidos para el atributo val:
<w:appearance val= boundingBox|tags|hidden. El valor predeterminado es boundingBox.
<w:color>
<w:color> es un elemento secundario de <w:sdtPr>. El modelo de contenido coincide con el tipo complejo CT_Color existente. El valor predeterminado es el color utilizado en Word 2010.

Nuevos miembros del modelo de objetos de controles de contenido de Word 2013

Con las nuevas mejoras y adiciones en los controles de contenido en Word 2013, se ha actualizado el modelo de objetos de Word para permitir la manipulación del nuevo conjunto de características mediante programación. Además, también se han realizado cambios en el formato de archivo Open XML subyacente para documentos de procesamiento de texto.

Las secciones siguientes proporcionan más información acerca de los cambios específicos al modelo de objetos relacionados con cada mejora de los controles de contenido.

Mejoras de visualización

Las mejoras de control de contenido de visualización incluyen varias adiciones al modelo de objetos en Word 2013. La siguiente tabla enumera nuevos miembros del objeto ContentControl para la visualización.

Tabla 2. Nuevos miembros del objeto ContentControl

Miembro Description
. Appearance como WdContentControlAppearance
Obtiene o establece la visualización del control de contenido.
. Color como WdColor
Obtiene o establece el color del control de contenido.

En la siguiente tabla se muestran las constantes en la nueva enumeración WdContentControlAppearance.

Tabla 3. Nuevas constantes de la enumeración WdContentControlAppearance

Constante Description
wdContentControlBoundingBox
Representa un control de contenido que se muestra como un cuadro rectangular o un cuadro de selección sombreado (con título opcional).
wdContentControlTags
Representa un control de contenido que se muestran como marcadores de inicio o finalización.
wdContentControlHidden
Representa un control de contenido que no se muestra.

Ejemplo de código

El siguiente ejemplo de código muestra cómo crear controles de contenido de texto enriquecido y establecer la visualización mediante programación.

Sub testVisualization()
   Dim objcc As ContentControl
   Dim objRange As Range
   
   ' Get the first paragraph as a range object.
   Set objRange = ActiveDocument.Paragraphs(1).Range
   ' Create a rich text content control around the first paragraph.
   Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange)
   objcc.Title = "Default Bounding Box"
   ' Set visualization to the default.
   objcc.Appearance = wdContentControlBoundingBox
   
   ' Create a new paragraph.
   objRange.InsertParagraphAfter
   Set objRange = ActiveDocument.Paragraphs(2).Range
   ' Create a rich text content control around the second paragraph.
   Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange)
   objcc.Title = "Non Bounding"
   ' Set visualization to invisible.
   objcc.Appearance = wdContentControlHidden
   
   ' Create a new paragraph.
   objRange.InsertParagraphAfter
   Set objRange = ActiveDocument.Paragraphs(3).Range
   ' Create a rich text content control around the third paragraph.
   Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange)
   objcc.Title = "Tags Only with Pink color"
   ' Set visualization to Start/End tags with pink color.
   objcc.Appearance = wdContentControlTags
   objcc.Color = wdColorPink
End Sub

Asignación XML

No se han hecho adiciones al modelo de objetos de Word 2013 para dar cabida a la asignación de texto enriquecido a los nodos XML en el almacén de datos del documento. En su lugar, puede usar el modelo de objetos existente para asignar un control de contenido de texto enriquecido a un nodo XML en el almacén de datos del documento. Tampoco se ha modificado el esquema WordprocessingML de formato de archivo Open XML subyacente como parte de la compatibilidad con el control de contenido de texto enriquecido incluida recientemente, específicamente para la asignación XML.

Ejemplo de código

El siguiente ejemplo de código muestra cómo asignar un control de contenido de texto enriquecido a un nodo XML mediante programación.

Sub testRichBinding()
   Dim objRange As Range
   Dim objcc As ContentControl
   Dim objCustomPart As CustomXMLPart
   Dim blnMap As Boolean
   
   ' Add a custom XML part to the data store.
   Set objCustomPart = ActiveDocument.CustomXMLParts.Add
   ' Load XML fragment into the custom XML part.
   objCustomPart.LoadXML ("<x>Rich Text Databinding</x>")
   ' Get the first paragraph as a range object.
   Set objRange = ActiveDocument.Paragraphs(1).Range
   ' Create a rich text content control around the first paragraph.
   Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange)
   ' Bind the XML node to the rich text content control.
   blnMap = objcc.XMLMapping.SetMapping("/x")
   ' Return whether mapping worked.
   MsgBox objcc.XMLMapping.IsMapped
End Sub

Controles de contenido para repetición de secciones representados en el modelo de objetos

El control de contenido para repetición de secciones está disponible en el modelo de objetos mediante las siguientes adiciones al objeto ContentControl y los nuevos objetos RepeatingSectionItem y RepeatingSectionItemColl. En la tabla 4 se enumeran los nuevos miembros más importantes del objeto ContentControl para controles de contenido para la repetición de secciones.

Tabla 4. Miembros del objeto ContentControl

Miembro Description
AllowInsertDeleteSection como Boolean
Obtiene o establece si los usuarios pueden agregar o quitar secciones del control de contenido mediante la interfaz de usuario. Si se llama a esta propiedad para un control de contenido que no es del tipo de sección de repetición, se produce el siguiente error en la llamada: "Esta propiedad solo se puede usar con controles de contenido de sección de repetición".
RepeatingSectionItemTitle como String
Obtiene o establece el nombre de elementos de sección de repetición utilizados en el menú contextual. Si se llama a esta propiedad para un control de contenido que no es del tipo de sección de repetición, se produce el siguiente error en la llamada: "Esta propiedad solo se puede usar con controles de contenido de sección de repetición".
InsertRepeatingSectionItemBefore como ContentControl
Agrega un elemento de sección de repetición antes del elemento actual y devuelve el nuevo elemento de sección de repetición. Si se llama a esta propiedad para un control de contenido que no es del tipo de elemento de sección de repetición, se produce el siguiente error en la llamada: "Esta propiedad solo se puede usar con controles de contenido del elemento de sección de repetición".
InsertRepeatingSectionItemAfter como ContentControl
Agrega un elemento de sección de repetición después del elemento actual y devuelve el nuevo elemento de sección de repetición. Si se llama a esta propiedad para un control de contenido que no es del tipo de elemento de sección de repetición, se produce el siguiente error en la llamada: "Esta propiedad solo se puede usar con controles de contenido del elemento de sección de repetición".

En la tabla 5 se muestran los miembros más importantes del objeto RepeatingSectionItem.

Tabla 5. Miembros del objeto RepeatingSectionItem

Miembro Description
Range como Range
Devuelve el intervalo del elemento de sección de repetición especificado, excepto las etiquetas de inicio y finalización.
Delete
Elimina el elemento de sección de repetición especificado.
InsertItemAfter como RepeatingSectionItem
Agrega un elemento de la sección de repetición después del elemento especificado y devuelve el elemento nuevo.
InsertItemBefore como RepeatingSectionItem
Agrega un elemento de sección de repetición antes del elemento especificado y devuelve el elemento nuevo.

En la tabla 6 se muestran los miembros más importantes del objeto RepeatingSectionItemColl.

Tabla 6. Miembros del objeto RepeatingSectionItemColl

Miembro Description
Elemento como RepeatingSectionItem
Devuelve un elemento individual de sección de repetición.

La tabla 7 muestra el nuevo miembro de la enumeración WdContentControlType para controles de contenido para repetición de secciones.

Tabla 7. Adición a la enumeración WdContentControlType

Constante Description
wdContentControlRepeatingSection
Representa un control de contenido que contiene un elemento único en una sección de repetición.

Ejemplo de código

El siguiente ejemplo de código muestra cómo usar controles de contenido para repetición de secciones mediante programación.

Sub testRepeatingSectionControl()
   Dim objRange As Range
   Dim objTable As Table
   Dim objCustomPart As CustomXMLPart
   Dim objCC As ContentControl
   Dim objCustomNode As CustomXMLNode
   
   Set objCustomPart = ActiveDocument.CustomXMLParts.Add
   objCustomPart.LoadXML ("<books>" & _
       "<book><title>Everyday Italian</title>" & _
       "<author>Giada De Laurentiis</author></book>" & _
       "<book><title>Harry Potter</title>" & _
       "<author>J K. Rowling</author></book>" & _
       "<book><title>Learning XML</title>" & _
       "<author>Erik T. Ray</author></book></books>")
   
   Set objRange = ActiveDocument.Paragraphs(1).Range
   Set objTable = ActiveDocument.Tables.Add(objRange, 2, 2)
   With objTable.Borders
       .InsideLineStyle = wdLineStyleSingle
       .OutsideLineStyle = wdLineStyleDouble
   End With
   Set objRange = objTable.Cell(1, 1).Range
   Set objCustomNode = objCustomPart.SelectSingleNode("/books[1]/book[1]/title[1]")
   Set objCC = ActiveDocument.ContentControls.Add(wdContentControlText, objRange)
   objCC.XMLMapping.SetMappingByNode objCustomNode
   Set objRange = objTable.Cell(1, 2).Range
   Set objCustomNode = objCustomPart.SelectSingleNode("/books[1]/book[1]/author[1]")
   Set objCC = ActiveDocument.ContentControls.Add(wdContentControlText, objRange)
   objCC.XMLMapping.SetMappingByNode objCustomNode
   Set objRange = objTable.Rows(1).Range
   Set objCC = ActiveDocument.ContentControls.Add(wdContentControlRepeatingSection, objRange)
   objCC.XMLMapping.SetMapping ("/books[1]/book")
End Sub

Cambios al formato de archivo Open XML para controles de contenido para repetición de secciones

La representación del formato de archivo de un control de contenido para repetición de secciones generalmente usa los mismos nombres de elemento, los valores, etc., que el formato XML existente; sin embargo, el elemento <sdt> que representa el contenedor de sección de repetición exterior existe en el espacio de nombres de Word 2013, para garantizar la compatibilidad con versiones anteriores de Word.

Los elementos individuales de repetición dentro del control de contenido para repetición de secciones (que rodean a cada elemento individual) se guardan como controles de contenido de texto enriquecido con la representación de WordprocessingML existente. En la tabla 8 se enumeran los elementos nuevos en el esquema WordprocessingML para controles de contenido para repetición de secciones.

Tabla 8. Elementos nuevos en el esquema WordprocessingML para controles de contenido para repetición de secciones

Elemento Description
<w15:repeatingSection>
Especifica un control de contenido para repetición de secciones. Este elemento es mutuamente exclusivo con todos los demás tipos de controles y no tiene elementos secundarios ni atributos.
<w15:repeatingSectionItem>
Especifica un control de contenido de elemento de sección de repetición. Este elemento es mutuamente exclusivo con todos los demás tipos de controles y no tiene elementos secundarios ni atributos.
<w15:doNotAllowInsertDeleteSection>
Especifica que el usuario no puede agregar ni eliminar secciones mediante la interfaz de usuario en Word 2013.
<w15:sectionTitle>
Especifica el nombre de los elementos de sección de repetición (y se usa en el menú contextual cuando se elige el control).