カスタム ドキュメント プロパティを作成および変更する

上記の Microsoft Office アプリケーションは、ドキュメントで保存される組み込みのプロパティを提供します。 さらに、ドキュメントで保存する追加情報がある場合は、カスタム ドキュメント プロパティを作成し、変更することができます。

適用対象: このトピックの情報は、Excel、PowerPoint、Project、Word のアプリケーションのドキュメント レベルのプロジェクトおよび VSTO アドインのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

ドキュメントの CustomDocumentProperties プロパティを使用して、カスタム プロパティを操作します。 たとえば、Microsoft Office Excel のドキュメント レベルのプロジェクトでは、 CustomDocumentProperties クラスの ThisWorkbook プロパティを使用します。 Excel の VSTO アドイン プロジェクトでは、 CustomDocumentProperties オブジェクトの Workbook プロパティを使用します。 これらのプロパティは、 DocumentProperties オブジェクトのコレクションである DocumentProperty オブジェクトを返します。 このコレクションの Item プロパティを使用すると、名前またはコレクション内のインデックスに基づいて特定のプロパティを取得できます。

次の例は、Excel のドキュメント レベルのカスタマイズでカスタム プロパティを追加し、値を割り当てる方法を示します。

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

信頼性の高いプログラミング

未定義の Value プロパティにアクセスしようとすると、例外が発生します。