如何在用户访问文件>之前捕获用户在Word 2013 / Word 2016中保存未保存的文档?另存为窗格?

时间:2016-01-20 08:51:32

标签: ms-word

对于未保存的/新文档在Word 2010中,在用户选择文件>时引发Application DocumentBeforeSave事件。保存或文件>另存为(或导致相同的任何按钮或键盘快捷方式)。 如果一个陷阱此事件可以执行自定义保存操作,则将“取消”设置为“真”,用户仍在查看文档,从未看到任何Word另存为dlg /窗格等。

在Word 2016中(可能也在Word 2013中),仅当用户选择/单击“另存为”窗格中提供的任何链接时,才会引发DocumentBeforeSave事件。 此外,在捕获事件并执行自定义保存操作并将“取消为真”用户设置为“另存为”窗格后。 enter image description here

任何人对于如何为此获得Word 2010行为有任何想法?

1 个答案:

答案 0 :(得分:0)

Word 2016:转到文件>选项>保存并勾选“打开或保存文件时不显示后台”:

Preventing Backstage from showing when pressing Ctrl-S or any other short-cut for saving a document the first time.

使用VBA测试此效果:

创建课程:

Public WithEvents wApp As Word.Application
Private Sub wApp_DocumentBeforeSave(ByVal wDoc As Document, _
   saveAsUi As Boolean, cancel As Boolean)
   If MsgBox("Save?", vbYesNo, "Custom save") = vbNo Then cancel = True
End Sub

创建模块:

Dim myClass As New Class1
Sub Test()
 Set myClass.wApp = Word.Application
End Sub

运行Test()然后尝试使用Ctrl-S(或其他一些快捷方式)保存未保存的文档。现在你应该得到“自定义保存”dlg。

如果没有勾选“打开或保存文件时不显示Backstage”按Ctrl-S应该引导文件>在Backstage中另存为选项卡(如问题中所述)。

与使用我们自己的使用功能区(后台)xml替换内置的另存为相比,使用此解决方案的改进是用户仍然可以使用文件>进入内置的另存为。另存为。

现在,另一个问题是:是否可以将用户发送到内置文件>另存为取决于哪个文档处于活动状态?

的Stein-撕