Procedura: creare e modificare proprietà personalizzate di un documento

Le applicazioni di Microsoft Office elencate forniscono proprietà incorporate che vengono memorizzate insieme ai documenti.Inoltre, se si desidera memorizzare informazioni aggiuntive con il documento, è possibile creare e modificare proprietà personalizzate del documento.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Excel 2013, Excel 2010, PowerPoint 2013, PowerPoint 2010, Project 2013, Project 2010, Word 2013 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Utilizzare la proprietà CustomDocumentProperties di un documento per impiegare le proprietà personalizzate.Ad esempio, in un progetto a livello di documento per Microsoft Office Excel, utilizzare la proprietà CustomDocumentProperties della classe ThisWorkbook.In un progetto a livello di applicazione per Excel, utilizzare la proprietà CustomDocumentProperties di un oggetto Microsoft.Office.Interop.Excel.Workbook.Queste proprietà restituiscono un oggetto DocumentProperties, che rappresenta una raccolta di oggetti DocumentProperty.È possibile utilizzare la proprietà Item della raccolta per recuperare una determinata proprietà in base al nome o all'indice a esso associato nella raccolta.

Nell'esempio riportato di seguito viene illustrato come aggiungere una proprietà personalizzata in una personalizzazione a livello di documento per Excel e come assegnare un valore.

Collegamento a video Per una dimostrazione video correlata, vedere How Do I: Access and Manipulate Custom Document Properties in Microsoft Word? (la pagina potrebbe essere in inglese).

Esempio

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");
}

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;
}

Programmazione efficiente

Se si tenta di accedere alla proprietà Value delle proprietà non definite, viene generata un'eccezione.

Vedere anche

Attività

Procedura: leggere e scrivere nelle proprietà dei documenti

Altre risorse

Programmazione di componenti aggiuntivi a livello di applicazione

Programmazione delle personalizzazioni a livello di documento