Nunca salvar o modelo do Word?

0

Existe uma maneira de nunca salvar modelos no Word? Temos muitos modelos que usamos para criar documentos padrão. Quando um documento baseado em um desses modelos é fechado, o usuário é perguntado se deseja salvar as alterações no modelo. Eu escrevi uma macro que impede isso, mas somente se o documento principal foi salvo antes do fechamento. Existe uma maneira de evitar que o modelo seja salvo / alterado de um documento baseado nele?

    
por MechEng 05.02.2013 / 13:53

2 respostas

1

Eu revisei o link acima e isso me levou à resposta. Eu estou criando os novos documentos com uma macro que carrega o modelo adequado. Acabei de adicionar duas linhas à macro:

ActiveDocument.AttachedTemplate.Saved=True
ActiveDocument.AttachedTemplate=""

A primeira linha faz com que o modelo pareça ser salvo (para que o usuário não seja solicitado). A segunda linha quebra a conexão ao modelo. (isso define o modelo associado para "Normal".

Esta parece ser uma boa solução para garantir que o usuário nunca grave acidentalmente qualquer alteração de formatação no modelo mestre.

    
por 07.02.2013 / 18:46
0

Não há configuração para suprimir o prompt, mas o VBA pode fazer isso.

No editor de macro, selecione o projeto Normal e clique em Inserir > Módulo de Classe. No painel Propriedades, altere o nome do módulo de classe para EventClassModule. (Se você não vir o painel "Propriedades", pressione F4 ou clique em Visualizar > Janela "Propriedades").

Na janela de código do módulo de classe, cole este código:

Public WithEvents App As Word.Application

Private Sub App_DocumentBeforeSave(ByVal Doc As Document, _
        SaveAsUI As Boolean, Cancel As Boolean)
    If Doc Is ActiveDocument And ActiveDocument.AttachedTemplate <> ActiveDocument Then
        Doc.AttachedTemplate.Saved = True ' avoid saving template
    End If
End Sub

Também no projeto Normal, adicione um módulo regular (Insert > Module) e adicione este código a ele:

Dim X As New EventClassModule

Sub AutoExec()
    Set X.App = Word.Application
End Sub

Sub AutoExit()
    Set X = Nothing
End Sub

Autor: Jay Freedman Fonte: link

    
por 18.03.2015 / 11:38