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

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

Microsoft Office のバージョン

  • 2007 Microsoft Office system

  • Microsoft Office 2003

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

Microsoft Office Excel および Microsoft Office Word では、ブックおよび文書に保存される組み込みのプロパティがあります。ドキュメント レベルのカスタマイズに含まれるドキュメントに保存する情報が他にもある場合は、カスタム ドキュメント プロパティを作成し、これを変更できます。

カスタム プロパティを使用するには、CustomDocumentProperties プロパティを使用します。このプロパティは、DocumentProperty オブジェクトのコレクションである DocumentProperties オブジェクトを返します。このコレクションの Item プロパティを使用すると、名前またはコレクション内のインデックスを利用して、特定のプロパティを取得できます。

Excel にカスタム プロパティを追加し、値を代入する例を以下に示します。

使用例

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

堅牢性の高いプログラム

未定義のプロパティに関して Value プロパティへのアクセスを試みると、例外が発生します。

参照

処理手順

方法 : ドキュメント プロパティの読み込みと書き込みを行う

概念

ドキュメント レベルのカスタマイズのプログラミング