VBAを使用してOPN XML文書のカスタムプロパティにアクセスできません
-
21-12-2019 - |
質問
VBAコードからCustomDocumentPropertyにアクセスしようとしています。カスタムプロパティが存在するcustom.xmlファイルを確認します。行方不明のものは何でも?これがDOCMファイルです!
更新
以下のコードを使用して追加しようとしましたが、何も追加しません。処理中のファイルをマークする必要があります。私がそれを達成することができる他の方法はありますか?
With ActiveDocument.CustomDocumentProperties
.Add Name:="CustomNumber", _
LinkToContent:=False, _
Type:=msoPropertyTypeNumber, _
Value:=1000
.Add Name:="CustomString", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:="This is a custom property."
.Add Name:="CustomDate", _
LinkToContent:=False, _
Type:=msoPropertyTypeDate, _
Value:=Date
End With
.
解決
XML(custom.xml)では、カスタムドキュメントプロパティにfmtid="{3dc82474f-f36d8a5b0e58}"(またはそのようなもの)があります。
{D5CDD505-2E9C-101B-9397-08002B2CF9AE}、またはWordはカスタムドキュメントプロパティとして認識されません。
あなたの更新された質問のために、あなたのVBAコードに問題はありませんが、単語にはエラーがあります。 henカスタム文書のプロパティを挿入すると、単語は文書を「ダーティ」としてマークしません。その他の方法で文書を変更していない場合は、手動で行っても、プロパティへの変更を保存しません。カスタムドキュメントのプロパティダイアログ。しかし、document_closeイベントが実行されているときはできません。
それに対処するためにあなたが
を置くことを提案するActiveDocument.Saved = False
.
あなたのdocument_closeイベントハンドラの末尾に。瞬時には、プロパティがすでに存在する場合、コードがエラーを引き起こします。
これはISO規格で、あるいはマイクロソフトの実装情報文書でさえ言及されているとは思わない([MS-OI29500] .pdf - いくつかの情報があります。後者は有用ではなく、実際には少し混乱しています。
これらの標準IDの一部はリストされていますこちらが" {3d "で始まるものについては何も見つかりません。誰かがOffice Open XMLを直接使用して文書を作成し、「任意の古いGUID」を挿入したばかりだと思います。
個人的には、XMLに入り、GUIDを修正しました。 (更新 - 私はそれを試しましたが、たびに失敗しました。新しいドキュメントから始めるのが最善です。そして標準のカスタム文書のプロパティダイアログでプロパティを挿入します。