2014-12-22 39 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的子集,但不使用宏記錄器使用的語法。