Я пытаюсь создать журнал сохранения для документа Word. Я хочу отслеживать всех, кто сохраняет этот документ. Я не мог найти простой способ использования VBA после сохранения (по крайней мере, не в словах). Этот topic on after save events не будет работать, потому что эта форма будет распространяться (вероятно, по электронной почте) людям, которые делают изменения, сохраняют их и отправьте форму обратно.MS Word Сохранить историю
У меня это есть в таблице в конце документа.
Last saved by: { LASTSAVEDBY \*Upper\* MERGEFORMAT } on { DOCPROPERTY LastSavedTime \* MERGEFORMAT }
Я хочу, чтобы вызвать событие (VBA или нет), который будет копировать и вставить эту строку (кроме поддержания его значения vs. коды полей) до или после того, как документ будет сохранен.
Я снял это с 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 и пометить его доверенным документом для определенных людей.