【问题标题】:MS Word Save HistoryMS Word 保存历史
【发布时间】:2015-02-20 21:16:18
【问题描述】:

我正在尝试为 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 并将其标记为某些人的受信任文档。

【问题讨论】:

    标签: vba ms-word save revision-history


    【解决方案1】:

    查看文件版本(Alt + F、R)。跟踪更改 (Alt + T, T) 和保护文档 (Alt + T, P) 也可以协同工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多