Trabajar con controles de contenido

¿Qué son los controles de contenido?

Los controles de contenido son regiones enlazadas y potencialmente etiquetadas de un documento que sirven como contenedores de tipos específicos de contenido. Los controles de contenido individuales pueden incluir contenido como, por ejemplo, fechas, listas o párrafos de texto con formato. En algunos casos, los controles de contenido podrían considerarse como formularios. Sin embargo, son muchos más poderosos, flexibles y útiles porque permiten crear bloques enriquecidos y estructurados de contenido. Los controles de contenido permiten crear plantillas que insertan bloques bien definidos en los documentos. Los controles de contenido le permiten hacer lo siguiente:

  • Especificar las regiones estructuradas en una plantilla. Cada región estructurada tiene su propio identificador único de modo que puede realizar la lectura desde él y escribir en él. Entre algunos ejemplos de tipos de regiones estructuradas (o controles de contenido) se incluyen los cuadros combinados, las imágenes, los bloques de texto y los calendarios.

  • Determinar el comportamiento de los controles de contenido. Cada control de contenido ocupa una parte de un documento y, como autor de la plantilla, puede especificar lo que hace cada región. Por ejemplo, si quiere que una región de la plantilla sea un calendario, debería insertar un control de contenido de calendario en el área del documento, lo que determinará automáticamente lo que hace dicho bloque de contenido. De manera similar, si desea que una sección de una plantilla muestre una imagen, cree un control de contenido de imagen en dicha área. De este modo, podrá crear una plantilla con tipos de bloque predefinidos.

  • Restringir la capacidad de modificar los controles de contenido de un documento. Cada control de contenido se puede restringir de modo que no se pueda eliminar ni editar. Esto puede ser de utilidad si, por ejemplo, incluye información de copyright en una plantilla que el usuario debería poder leer pero no editar. O bien, otro ejemplo sería el bloqueo de un control de contenido colocado en un documento de plantilla de modo que un usuario no elimine el contenido incluido en el control de contenido de forma accidental. Esto hace que la plantilla sea más robusta que en las versiones anteriores.

  • Asignar el contenido de un control de contenido a datos en un elemento XML personalizado. Por ejemplo, si inserta controles de contenido de texto sin formato en las celdas de una tabla de precios de acciones, puede asignar los controles de contenido en las celdas de tabla a los nodos de un archivo XML que contiene los precios de acciones actuales. Cuando cambien los precios, un complemento puede actualizar mediante programación el archivo XML adjunto, que está enlazado a cada control de contenido de texto sin formato y los nuevos precios actualizados aparecerán automáticamente en la tabla.

La manera más fácil de crear un control de contenido es a través de la interfaz de usuario (aunque también es posible crearlos mediante programación). Para crear un control de contenido mediante la interfaz de usuario (UI), seleccione el contenido que desee convertir en control de contenido (por ejemplo, texto o una imagen) y elija el tipo de control de contenido deseado de la sección correspondiente de la cinta Desarrollador. De este modo, se crea un control de contenido alrededor del contenido seleccionado.

Controles de contenido en un modelo de objetos de Word

En la tabla siguiente se muestran los objetos del modelo de objetos de Word que están relacionados con los controles de contenido.

Nombre Descripción
ContentControl Cada objeto ContentControl representa un control de contenido individual dentro de un documento. Use la colección ContentControls para tener acceso a objetos ContentControl individuales.
ContentControls Use las propiedades ContentControls de los objetos Document, Range y Selection para acceder a la colección de controles de contenido. También puede usar los métodos SelectContentControlsByTitle y SelectContentControlsByTag del objeto Document para tener acceso a una colección ContentControls que incluye controles de contenido específicos con el mismo valor de título o etiqueta.
ContentControlListEntry Cuando un control de contenido es una lista desplegable o un cuadro combinado, el objeto ContentControlListEntry representa los elementos individuales de la lista.
ContentControlListEntries Utilice la propiedad DropdownListEntries del objeto ContentControl para acceder a todos los elementos de una lista desplegable individual o un cuadro combinado.

Cada uno de estos objetos o colecciones incluye métodos y propiedades que le permiten trabajar con controles de contenido, tanto de forma individual como en forma de colección. Dado que existen distintos tipos de controles de contenido (consulte la sección siguiente "Tipos de controles de contenido"), el objeto ContentControl tiene miembros que quizás no se aplican a todos los tipos diferentes de controles de contenido. En la tabla siguiente se muestran las propiedades y los métodos del objeto ContentControl que solo se aplican a determinados tipos de controles de contenido.

Nota:

Para obtener una lista completa de todas las propiedades y métodos del objeto ContentControl , vea Controles de contenido.

Propiedad o método Aplicación
Propiedad BuildingBlockCategory Controles de contenido de la galería BuildingBlock (wdContentControlBuildingBlockGallery)
Propiedad BuildingBlockType Controles de contenido de la galería BuildingBlock (wdContentControlBuildingBlockGallery)
Propiedad DateDisplayFormat Controles de contenido de fecha (wdContentControlDate)
Propiedad DateDisplayLocale Controles de contenido de fecha (wdContentControlDate)
Propiedad DateStorageFormat Controles de contenido de fecha (wdContentControlDate)
Propiedad DropdownListEntries Controles de contenido de cuadro combinado y lista desplegable (wdContentControlComboBox y wdContentControlDropdownList)
Propiedad MultiLine Controles de contenido de texto sin formato (wdContentControlText)
Método Ungroup Controles de contenido de grupo (wdContentControlGroup)
Método SetCheckedSymbol Controles de contenido de casillas (wdContentControlCheckBox)
Método SetUncheckedSymbol Controles de contenido de casillas (wdContentControlCheckBox)

Tipos de controles de contenido

Hay ocho tipos diferentes de controles de contenido que puede agregar a un documento, cada uno de los cuales se representa en una nueva enumeración denominada WdContentControlType.

Tipo de control de contenido Descripción Constante WdContentControlType
Casilla. wdContentControlCheckBox
Calendario Selector de fecha y hora. wdContentControlDate
Bloque de creación Permite al usuario elegir entre bloques de creación especificados. wdContentControlBuildingBlockGallery
Lista desplegable Lista desplegable. wdContentControlDropDownList
Grupo Define una región protegida de un documento que los usuarios no pueden editar ni eliminar. Un control de grupo puede incluir cualquier elemento de documento, tales como texto, tablas, gráficos y otros controles de contenido. wdContentControlGroup
Cuadro combinado Cuadro combinado. wdContentControlComboBox
Imagen Imagen. wdContentControlBlockPicture
Texto enriquecido Bloque de texto enriquecido. wdContentControlRichText
Texto sin formato Bloque de texto sin formato. wdContentControlText

Eventos de control de contenido

Además de las propiedades y los métodos disponibles con el modelo de objetos de control de contenido de Word, también puede usar varios eventos que le permiten ejecutar código a la hora de agregar o quitar un control de contenido o cuando un usuario edita un control de contenido. En la lista siguiente se describe cada evento y cuándo se ejecuta el código de evento. Todos estos eventos son miembros del objeto Document.

Nombre del evento Descripción
ContentControlAfterAdd Se produce después de agregar un nuevo control de contenido a un documento. Este evento se ejecuta ya sea si el usuario agrega el control de contenido mediante las herramientas de la interfaz de usuario o los agrega mediante código.
ContentControlBeforeContentUpdate Se produce antes de Word actualice el contenido de un control de contenido.
ContentControlBeforeDelete Se produce antes de que un usuario elimine un control de contenido. Este evento se ejecuta tanto si el usuario elimina el control de contenido mediante las herramientas de la interfaz de usuario como si los elimina mediante código.
ContentControlBeforeStoreUpdate Se produce antes de que Word actualice el contenido de un control de contenido a partir de los datos del almacén de datos del documento.
ContentControlOnEnter Se produce cuando un usuario entra en un control de contenido.
ContentControlOnExit Se produce cuando un usuario sale de un control de contenido.

Trabajar con el código

Tanto si desea agregar o eliminar un control de contenido, manipular controles de contenido como tener acceso a estos, puede usar el código. Las secciones siguientes muestran solo algunos ejemplos de lo que puede hacer.

Agregar un control de contenido

Tal como se mencionó anteriormente, existen ochos tipos diferentes de controles de contenido que puede agregar a los documentos. Use el método Add de la colección ContentControls para agregar un control de contenido a un documento. En el ejemplo siguiente, se agrega un selector de fecha al documento activo y se establece el valor de fecha a la fecha actual.

Sub AddDatePicker() 
 
    Dim objCC As ContentControl 
    Dim objDate As Date 
 
    Set objCC = ActiveDocument.ContentControls _ 
        .Add(wdContentControlDate) 
    objDate = Date 
    objCC.Range.Text = objDate 
     
End Sub

Use la misma construcción básica para agregar cualquiera de los distintos tipos de controles de contenido a un documento.

Agregar un título a un control de contenido

Use la propiedad Title para agregar un título a un control de contenido. Se trata del texto que los usuarios verán y que les ayudará a conocer el tipo de datos que deben especificar en el control de contenido. En el ejemplo siguiente, se agrega un nuevo control de contenido de texto sin formato al documento activo y se establece el título, o el texto de visualización, del control.

Sub SetTitleForContentControl() 
 
    Dim objCC As ContentControl 
     
    Set objCC = ActiveDocument.ContentControls _ 
        .Add(wdContentControlText) 
         
    objCC.Title = "Please enter your name" 
     
End Sub

Modificar el texto de marcado a un control de contenido

El texto de marcado es texto temporal. Puede ser una descripción sencilla de una o dos palabras (similar a un título) o puede ser una descripción más exhaustiva (tales como pasos enumerados). La modificación del texto de marcador es la misma, independientemente del tipo de control de contenido o el contenido esperado de este. En el ejemplo siguiente, se agrega una lista desplegable al documento activo, se establece el texto de marcado del control y se rellena la lista con los nombres de varios animales.

Sub SetPlaceholderText() 
 
    Dim objCC As ContentControl 
     
    Set objCC = Selection.ContentControls _ 
        .Add(wdContentControlComboBox) 
    objCC.Title = "Favorite Animal" 
    objCC.SetPlaceholderText _ 
        Text:="Please select your favorite animal " 
     
    'List entries 
    objCC.DropdownListEntries.Add "Cat" 
    objCC.DropdownListEntries.Add "Dog" 
    objCC.DropdownListEntries.Add "Horse" 
    objCC.DropdownListEntries.Add "Monkey" 
    objCC.DropdownListEntries.Add "Snake" 
    objCC.DropdownListEntries.Add "Other" 
 
End Sub

Estas son tan solo algunas de las maneras en que puede usar el modelo de objetos para manipular los controles de contenido de sus documentos. Para obtener más ejemplos, consulte la sección Procedimiento.

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.