Assine uma palavra projeto/arquivo VBA via linha de comando ou outra forma de automação

StackOverflow https://stackoverflow.com/questions/2422508

  •  19-09-2019
  •  | 
  •  

Pergunta

Existe uma maneira de automatizar o código de assinatura de um projeto VBA em um documento Word 2003 e/ou Word 2007?

Por automatizar, quero dizer através de um utilitário de linha de comando ou via automação do Word VBA?

Motivação: gostaria de codificar vários modelos de palavras como parte de um ciclo automatizado de construção e distribuição diária. No momento, temos que fazer isso manualmente, abrindo cada documento no Word e renunciando.

Obrigado Malcolm

Foi útil?

Solução

Eu não acredito que haja uma maneira automatizada de fazer isso porque derrotaria a segurança de assinando código Assinatura do projeto VBA.

As duas digestas de mensagens são comparadas e, se alguma parte do arquivo tiver sido modificada ou corrompida, os digestos não corresponderão e o conteúdo do arquivo não poderá ser confiável. O processo de verificação falhará, independentemente de como o arquivo foi modificado - seja por corrupção, um vírus macro ou alterações programáticas feitas por um suplemento ou solução de escritório. O processo de verificação também falhará se o arquivo não foi assinado com um certificado válido; isto é, se o certificado tivesse expirado, ou tivesse sido forjado, alterado ou corrompido. Se outro usuário modificar o projeto VBA, o aplicativo Office 2000 remove a assinatura atual e solicitará ao usuário assinar novamente o projeto VBA; Se o usuário não assinar o projeto VBA ou assinar com outro certificado, o arquivo poderá falhar no processo de verificação.

Inserido de http://msdn.microsoft.com/en-us/library/aa190113(office.10).aspx

A assinatura do código possui o nível adicional de segurança no fato de que um desenvolvedor deve compilar código -fonte. Uma macro não é compilada e pode ser distribuída como texto. Portanto, automatizar a assinatura de macro abriria um grande orifício de segurança. Sigrar manualmente uma macro é semelhante ao Outlook que solicita o usuário a permitir o acesso programático ao catálogo de endereços.

Outras dicas

Eu nunca vi uma maneira de fazer isso. Eu tinha uma construção automatizada de um modelo anos atrás e, no final, eu coloquei uma caixa de mensagem dizendo "Você precisa assinar o modelo agora" e depois abri o VBA para eles. Só dizendo que sinto sua dor, eu acho.

Isso pode valer a pena dar uma olhada:http://winbatch.com/

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