Nunca guardar plantilla de Word?

0

¿Hay una manera de nunca guardar plantillas en Word? Tenemos muchas plantillas que usamos para crear documentos estándar. Cuando se cierra un documento basado en una de estas plantillas, se pregunta al usuario si desea guardar los cambios en la plantilla. Escribí una macro que impide esto, pero solo si el documento principal se guardó justo antes del cierre. ¿Hay alguna manera de evitar que la plantilla se guarde / cambie de un documento que se basa en ella?

MechEng
fuente
1
esto no se trata de la programación sino del uso de los productos de Microsoft.
Gung Foo
Quizás debería haber sido más específico. ¿Hay alguna forma de activar una macro en función del evento de guardar que ocurre cuando un usuario cierra un documento y se le pide que guarde? Mi macro de eventos guardados parece activarse cuando el usuario hace clic en guardar. Además, ¿hay algún truco para usar el evento on close para activar una macro?
Esta discusión puede ser útil: support.microsoft.com/kb/918064
burrowsrjl

Respuestas:

1

Revisé el enlace de arriba y me llevó a la respuesta. Estoy creando los nuevos documentos con una macro que carga la plantilla adecuada. Acabo de añadir dos líneas a la macro:

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

La primera línea hace que la plantilla parezca que se guarda (para que no se le pregunte al usuario). La segunda línea rompe la conexión con la plantilla. (Esto establece la plantilla asociada a "Normal".

Esto parece ser una buena solución para garantizar que el usuario nunca guarde accidentalmente ningún cambio de formato en la plantilla maestra.

MechEng
fuente
0

No hay ninguna configuración para suprimir la solicitud, pero VBA puede hacerlo.

En el editor de macros, seleccione el proyecto Normal y haga clic en Insertar & gt; Módulo de clase. En el panel Propiedades, cambie el nombre del módulo de clase a EventClassModule. (Si no ve el panel de Propiedades, presione F4 o haga clic en Ver & gt; Ventana de Propiedades).

En la ventana de código para el módulo de clase, pegue 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

También en el proyecto Normal, agregue un módulo regular (Insertar & gt; Módulo) y agregue este código:

Dim X As New EventClassModule

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

Sub AutoExit()
    Set X = Nothing
End Sub

Autor: Jay Freedman Fuente: http://answers.microsoft.com/en-us/office/forum/office_365hp-word/i-never-want-to-save-changes-to-template-from-a/f1cc78f8-2f2f-4c45-a3fb- 731a9105a5a8

Jean-François
fuente