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.
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