2014-12-22 267 views
1

我正在尝试为word文档创建保存日志。我想跟踪每个保存此文档的人。我找不到在保存后使用VBA的一种简单方法(至少不是单词)。 这个topic on after save events将不起作用,因为这个表单将被分发(可能通过电子邮件)给做编辑的人,保存它们并将表格发回。MS Word保存历史记录

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

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并将其标记为某些人的可信文档。

回答

0

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

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