3

Excel 2007 ブック ファイルにカスタム ドキュメント プロパティを作成して設定するプログラムを作成しました。ただし、このプロパティの値をワークシートのセルに表示できませんでした。Word 2007 では、[挿入] -> [クイック パーツ] -> [フィールド...] を選択するだけで、DocProperty フィールドを使用してドキュメント内のカスタム フィールドの値を表示できます。ただし、Excel 2007 で同様の関数は見つかりませんでした。

カスタム ドキュメント プロパティの値を Excel ワークシート セルに表示する方法を知っている人はいますか? 上記の Word 2007 ソリューションと同様のソリューションを希望します。これにはマクロ/カスタムコードを使用しません。

4

6 に答える 6

4

Excel でこれに相当するのは式によるものであり、コードなしでドキュメント プロパティを抽出することはできないと思います。ドキュメント プロパティを選択するためのネイティブ関数はありません。(代わりに、数式を介してアクセスできるワークブック/ワークシート名に情報を保存することもできます)

VBA では、次のような関数を作成する必要があります。

Public Function CustomProperty(ByVal prop As String)

    CustomProperty = ActiveWorkbook.CustomDocumentProperties(prop)

End Function

を使用して式で呼び出します=CustomProperties("PropertyName")

もう一つ微妙な点があります。数式の依存関係は、他のセルにのみ関連します。この式は、カスタム プロパティに依存します。カスタム プロパティを更新する場合、関連する既存の式CustomPropertyは自動的に更新されません。セルを手動で再評価するか、ワークブック全体を強制的に再計算する必要があります。関数を揮発性にするのが最善の方法です。これは、セルが変更されるたびに数式が再計算されることを意味しますが、これはセルが変更された場合にのみ更新されることを意味します。

于 2009-07-14T09:29:02.393 に答える
4

残念ながら、ユーザー定義関数を使用する必要があると思います。ワークブックに新しい VBA モジュールを追加し、次の関数を追加します。

Function DocumentProperty(Property As String)
  Application.Volatile
  On Error GoTo NoDocumentPropertyDefined
  DocumentProperty = ActiveWorkbook.BuiltinDocumentProperties(Property)
  Exit Function
NoDocumentPropertyDefined:
  DocumentProperty = CVErr(xlErrValue)
End Function

を呼び出すとApplication.Volatile、再計算のたびにセルが強制的に更新され、ドキュメント プロパティの変更が確実に反映されます。

于 2009-07-14T09:36:36.403 に答える
1

抽出するセルを選択しますセルの名前を便利な名前に変更します。「B1」から「Project_Number」まで。「詳細プロパティ」を開き、「カスタム」タブをクリックします。新しいプロパティの名前を入力します。[コンテンツへのリンク] をクリックし、[値] プルダウン リストからセル名を選択します。

証明書を取得できればいいのですが、オンラインで答えを見つけました: http://pdmadmin.com/2012/03/displaying-custom-property-values-in-excel-using-a-named-range/

于 2012-08-04T20:32:55.317 に答える
0

名前付き範囲をカスタム プロパティにリンクすることはできますが、カスタム プロパティは [範囲内の最初のセル] の値を反映します。事実上読み取り専用です。セルの内容を変更してプロパティを更新することはできますが、その逆はできません。

避けたいのはわかりますが、式でプロパティ値を使用する場合は、カスタム ワークシート関数を作成する必要があります。

于 2009-07-14T09:36:48.977 に答える
-1

これを使用して、SharePoint プロパティを抽出しました (Martin の回答に基づく):

Public Function DocumentProperty(Property As String)
    Application.Volatile
    On Error GoTo NoDocumentPropertyDefined

    DocumentProperty = ActiveWorkbook.ContentTypeProperties(Property).Value
Exit Function

NoDocumentPropertyDefined:
    DocumentProperty = CVErr(xlErrValue)
End Function
于 2014-05-11T13:49:58.487 に答える