Compartir a través de


Cómo: Crear y modificar propiedades personalizadas para documentos

Las aplicaciones de Microsoft Office enumeradas anteriormente proporcionan propiedades integradas que se almacenan con los documentos. Además, se pueden crear y modificar propiedades de documento personalizadas si hay información adicional que desea almacenar con el documento.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para las siguientes aplicaciones: Excel 2007 y Excel 2010; PowerPoint 2007 y PowerPoint 2010; Project 2007 y Project 2010; Word 2007 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Use la propiedad CustomDocumentProperties de un documento para trabajar con propiedades personalizadas. Por ejemplo, en un proyecto de nivel de documento para Microsoft Office Excel, use la propiedad CustomDocumentProperties de la clase ThisWorkbook. En un proyecto de nivel de aplicación para Excel, use la propiedad CustomDocumentProperties de un objeto Microsoft.Office.Interop.Excel.Workbook. Estas propiedades devuelven un objeto DocumentProperties, que es una colección de objetos DocumentProperty. Puede utilizar la propiedad Item de la colección para recuperar una propiedad determinada de la colección, ya sea por el nombre o por el índice.

En el siguiente ejemplo se muestra cómo agregar una propiedad personalizada en una personalización de nivel de documento para Excel y cómo asignarle un valor.

vínculo a vídeo Dispone de una demostración en vídeo relacionada en How Do I: Access and Manipulate Custom Document Properties in Microsoft Word?.

Ejemplo

Sub TestProperties()
    Dim properties As Microsoft.Office.Core.DocumentProperties
    properties = CType(Me.CustomDocumentProperties, Office.DocumentProperties)

    If ReadDocumentProperty("Project Name") <> Nothing Then
        properties("Project Name").Delete()
    End If

    properties.Add("Project Name", False, _
        Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeString, _
        "White Papers")
End Sub

Private Function ReadDocumentProperty(ByVal propertyName As String) As String
    Dim properties As Office.DocumentProperties
    properties = CType(Me.CustomDocumentProperties, Office.DocumentProperties)

    Dim prop As Office.DocumentProperty

    For Each prop In properties
        If prop.Name = propertyName Then
            Return prop.Value.ToString()
        End If
    Next

    Return Nothing
End Function
void TestProperties()
{
    Microsoft.Office.Core.DocumentProperties properties;
    properties = (Office.DocumentProperties)this.CustomDocumentProperties;

    if (ReadDocumentProperty("Project Name") != null)
    {
        properties["Project Name"].Delete();
    }

    properties.Add("Project Name", false,
        Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeString,
        "White Papers", missing);
}

private string ReadDocumentProperty(string propertyName)
{
    Office.DocumentProperties properties;
    properties = (Office.DocumentProperties)this.CustomDocumentProperties;

    foreach (Office.DocumentProperty prop in properties)
    {
        if (prop.Name == propertyName)
        {
            return prop.Value.ToString();
        }
    }
    return null;
}

Programación eficaz

Si se intenta tener acceso a la propiedad Value para buscar propiedades no definidas, se inicia una excepción.

Vea también

Tareas

Cómo: Leer y escribir en propiedades de un documento

Otros recursos

Programar complementos de nivel de aplicación

Programar personalizaciones de nivel de documento