我正在尝试为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并将其标记为某些人的可信文档。
答案 0 :(得分:0)
查看文件版本(Alt + F,R)。跟踪更改(Alt + T,T)和保护文档(Alt + T,P)一起工作。
您可以录制它们(Alt + T,M,R)。虽然如果你不能运行宏没有多大意义。但您可以将宏转换为VBScript并从外部控制Word。 VBScript使用VBA的子集,但不使用Macro Recorder使用的语法。