MS Word保存历史记录

时间:2014-12-22 18:25:38

标签: vba ms-word save revision-history

我正在尝试为word文档创建保存日志。我想跟踪保存此文档的所有人。保存后我找不到使用VBA的简单方法(至少不是单词)。 此topic on after save events将无效,因为此表单将(通过电子邮件)分发给进行修改,保存并发回表单的人员。

我在文档末尾的表格中有这个。

Last saved by: { LASTSAVEDBY \*Upper\* MERGEFORMAT } on { DOCPROPERTY LastSavedTime \* MERGEFORMAT }

我想在保存文档之前或之后触发一个事件(VBA与否),该事件将复制并粘贴该行(除了保持它的值与字段代码之外)。

我将其从MSDN中删除了,但我不知道如何复制粘贴并保存字段代码的值。

Private Sub DocumentBeforeSave()
    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    AddHandler vstoDoc.BeforeSave, AddressOf ThisDocument_BeforeSave
End Sub 

Private Sub ThisDocument_BeforeSave(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Word.SaveEventArgs) 

 'do my stuff - copy field code, paste as values. 

    If System.Windows.Forms.MessageBox.Show( _
        "Do you want to save the document?", "BeforeSave", _
        System.Windows.Forms.MessageBoxButtons.YesNo) = System.Windows.Forms.DialogResult.No Then
        e.Cancel = True 
    End If 
End Sub

扔掉一把猴子扳手 - 我正在和那些可能会禁用宏的人一起工作(这可能会使这个徒劳无功)。任何人都有关于如何在VBA之外做到这一点的想法?如果没有 - 我将使用VBA并将其标记为某些人的可信文档。

1 个答案:

答案 0 :(得分:0)

查看文件版本(Alt + F,R)。跟踪更改(Alt + T,T)和保护文档(Alt + T,P)一起工作。

您可以录制它们(Alt + T,M,R)。虽然如果你不能运行宏没有多大意义。但您可以将宏转换为VBScript并从外部控制Word。 VBScript使用VBA的子集,但不使用Macro Recorder使用的语法。