Pregunta

Tratando de acceder a CustomDocumentProperty del código VBA.Voy a revisar el archivo Custom.xml, existe la propiedad personalizada.¿Algo desaparecido?Aquí está el archivo DOCM!

Documento de muestra adjunto

actualizado

Intenté agregar usando el código a continuación, pero no agrega nada.Necesito marcar un archivo según lo procesado.¿Hay alguna otra forma en que pueda lograr eso?

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

Enlace actualizado para agregar Documento de campo personalizado

¿Fue útil?

Solución

En el XML (Custom.XML), su propiedad de documento personalizado tiene FMTID="{3DC82474-74E0-4A77-944F-F36D8A5B0E58}" (o algo así).

Debe ser {D5CDD505-2E9C-101B-9397-08002B2CF9AEA 5, o Word no lo reconocerá como una propiedad de documento personalizado.

Para su pregunta actualizada, no hay nada de malo en su código VBA, pero hay un error en Word. La gallina inserta las propiedades de los documentos personalizados, Word no marca el documento como "sucio", por lo que si no ha cambiado el documento de ninguna otra manera, cuando se cierra, no guarda los cambios en las propiedades, a menos que entre El cuadro de diálogo Propiedades de documentos personalizados. Pero no puede hacerlo cuando se ejecuta el evento Document_Close.

para tratar con eso le sugiero que pongas

ActiveDocument.Saved = False

Al final de su document_Close Event Handler. Por cierto, en este momento su código causará un error si las propiedades ya existen.

No creo que esto se mencione en el estándar ISO o incluso en el documento de información de implementación de Microsoft ([MS-OI29500] .PDF: hay alguna información. En este último, pero no es útil y en realidad un poco confuso.

Algunas de estas identificaciones estándar se enumeran aquí pero no puedo encontrar nada sobre el que comienza con" {3D ". Supongo que alguien ha creado el documento con Office Open XML directamente y acaba de insertar "cualquier GUID anterior".

Personalmente, iría al XML y arreglaría el GUID. (Actualización: lo intenté, pero fallé cada vez. Mejor comenzar con un nuevo doc. E inserte la propiedad a través del cuadro de diálogo de propiedades de documentos personalizadas estándar, creo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top