从不保存 Word 模板?

从不保存 Word 模板?

有没有办法永远不保存 Word 中的模板?我们有很多用于创建标准文档的模板。当关闭基于其中一个模板的文档时,系统会询问用户是否要保存对模板的更改。我编写了一个宏来阻止这种情况,但前提是主文档在关闭之前已保存。有没有办法阻止从基于模板的文档保存/更改模板?

答案1

我查看了上面的链接,它让我找到了答案。我正在使用加载正确模板的宏创建新文档。我刚刚在宏中添加了两行:

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

第一行使模板看起来已保存(因此不会提示用户)。第二行断开与模板的连接。(这会将相关模板设置为“正常”)。

这似乎是一个很好的解决方案,可以确保用户不会意外地将任何格式更改保存回主模板。

答案2

没有设置可以抑制提示,但 VBA 可以做到这一点。

在宏编辑器中,选择 Normal 项目并单击“插入”>“类模块”。在“属性”窗格中,将类模块的名称更改为 EventClassModule。(如果您没有看到“属性”窗格,请按 F4 或单击“视图”>“属性窗口”。)

在类模块的代码窗口中,粘贴以下代码:

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

同样在 Normal 项目中,添加一个常规模块(插入 > 模块)并向其中添加以下代码:

Dim X As New EventClassModule

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

Sub AutoExit()
    Set X = Nothing
End Sub

作者:Jay Freedman 来源: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

相关内容