Pergunta

Tentando acessar CustomDocumentProperty do código VBA.Eu verifico no arquivo custom.xml a propriedade personalizada existe.Alguma coisa está faltando?aqui está o arquivo docm!

Exemplo de documento anexado

Atualizada

Tentei adicionar usando o código abaixo mas não acrescenta nada.Preciso marcar um arquivo como processado.Existe alguma outra maneira de conseguir isso?

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

Link atualizado para adicionar documento de campo personalizado

Foi útil?

Solução

No XML (custom.xml), sua propriedade de documento personalizado tem fmtid="{3DC82474-74E0-4A77-944F-F36D8A5B0E58}" (ou algo parecido).

Precisa ser {D5CDD505-2E9C-101B-9397-08002B2CF9AE} ou o Word não o reconhecerá como uma propriedade de documento personalizada.

Para sua pergunta atualizada, não há nada de errado com seu código VBA, mas há um erro no Word.Quando você insere propriedades personalizadas do documento, o Word não marca o documento como "Sujo", portanto, se você não alterou o documento de nenhuma outra forma, ao fechar, ele não salva as alterações nas propriedades, a menos que você entre manualmente caixa de diálogo Propriedades personalizadas do documento.Mas você não pode fazer isso quando o evento document_close estiver em execução.

Para lidar com isso, sugiro que você coloque

ActiveDocument.Saved = False

no final do seu manipulador de eventos Document_Close.Aliás, no momento seu código causará um erro se as propriedades já existirem.

Não acredito que isso seja mencionado no padrão ISO ou mesmo no documento de informações de implementação da Microsoft ([MS-OI29500].pdf - há algumas informações.neste último, mas não é útil e, na verdade, é um pouco confuso.

Alguns desses IDs padrão estão listados aqui mas não consigo encontrar nada sobre aquele que começa com "{3D".Eu acho que alguém criou o documento usando o Office Open XML diretamente e acabou de inserir "qualquer GUID antigo".

Pessoalmente, eu iria para o XML e corrigiria o GUID.(Atualização - eu tentei isso, mas falhei todas as vezes.Melhor começar com um novo documento.e insira a propriedade por meio da caixa de diálogo padrão Propriedades do documento personalizado, eu acho).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top