尝试从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=“{3DC82474-74E0-4A77-944F-F36D8A5B0E58}”(或类似的东西)。

需要是{d5cdd505-2e9c-101b-9397-08002b2cf9ae},或者单词不会将其作为自定义文档属性识别。

为您的更新问题,VBA代码没有错,但Word中存在错误。 hen您插入自定义文档属性,Word不会将文档标记为“脏”,因此如果您没有以任何其他方式更改文档,则在关闭时,除非您手动进入,否则它不会保存对属性的更改自定义文档属性对话框。但是当Document_Close事件运行时,您无法做到这一点。

处理我建议你把

ActiveDocument.Saved = False
.

在Document_Close事件处理程序的末尾。顺便说一下,如果属性已存在,则代码将导致错误。

我不相信ISO标准甚至在Microsoft的实施信息文档中提到这一点([MS-OI29500] .pdf - 有一些信息。在后者,但它没有帮助,实际上有点令人困惑。

其中一些标准ID列出了这里,但我找不到任何以”{3d“开头的东西。我猜想有人使用Office打开XML直接创建了该文件,刚刚插入了“任何旧GUID”。

p>个人,我会进入XML并修复GUID。 (更新 - 我尝试过,但每次都失败了。最好以新的医生开头。我认为通过标准自定义文档属性对话框插入属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top