Question

essayer d'accéder à CustomDocumentProperty à partir du code VBA.Je vérifie le fichier personnalisé.xml que la propriété personnalisée existe.Tout ce que je manque?Voici le fichier DOCM!

exemple de document ci-joint

mis à jour

J'ai essayé d'ajouter en utilisant le code ci-dessous mais cela n'ajoute rien.J'ai besoin de marquer un fichier tel que traité.Y a-t-il une autre façon que je puisse accomplir cela?

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

lienMise à jourpourajouterdocument dechamp personnalisé

Était-ce utile?

La solution

dans le XML (personnalisé.xml), votre propriété de document personnalisée a FMTID="{3DC82474-74E0-4A77-944F-F36D8A5B0E58}" (ou quelque chose comme ça).

Il doit être {D5CDD05-2E9C-101B-9397-08002B2CF9AE}, ou Word ne le reconnaîtra pas comme une propriété de document personnalisée.

Pour votre question mise à jour, vous n'avez rien de mal avec votre code VBA, mais il y a une erreur dans Word. poule Vous insérez des propriétés de document personnalisées, Word ne marquez pas le document comme "sale", donc si vous n'avez pas changé le document d'une autre manière, lorsqu'il ferme, il ne permet pas de ne pas enregistrer les modifications apportées aux propriétés, à moins que vous ne soyez manuellement La boîte de dialogue Propriétés du document personnalisé. Mais vous ne pouvez pas faire cela lorsque l'événement Document_Close est en cours d'exécution.

Pour faire face à cela, je vous suggère de mettre

ActiveDocument.Saved = False

à la fin de votre gestionnaire d'événements de document_close. BTW, au moment où votre code entraînera une erreur si les propriétés existent déjà.

Je ne crois pas que cela soit mentionné dans la norme ISO ou même dans le document d'information de mise en œuvre de Microsoft ([MS-OI29500] .pdf - Il y a des informations. Dans ce dernier, mais ce n'est pas utile et réellement un peu déroutant.

Certains de ces identifiants standard sont répertoriés ici mais je ne trouve rien à propos de celui qui commence par" {3D ". Je devinerais que quelqu'un a créé le document à l'aide de Office Open XML directement et vient d'insérer "n'importe quel ancien GUID".

Personnellement, j'irais dans le XML et réparerais le GUID. (Mise à jour - J'ai essayé cela, mais j'ai échoué à chaque fois. Mon mieux pour commencer avec un nouveau doc. Et insérez la propriété via la boîte de dialogue Propriétés de document personnalisée standard, je pense).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top