MS Word Сохранить историю
Я пытаюсь создать журнал сохранения для текстового документа. Я хочу отслеживать всех, кто сохраняет этот документ. Я не смог найти простой способ использования VBA после сохранения (по крайней мере, на словах). Эта тема после событий сохранения не будет работать, потому что эта форма будет распространяться (вероятно, по электронной почте) людям, которые делают изменения, сохраните их и отправьте форму обратно.
У меня есть это в таблице в конце документа.
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 и отмечу его как доверенный документ для определенных людей.
1 ответ
Посмотрите на версии файла (Alt + F, R). Также Track Changes (Alt + T, T) и Protect Document (Alt + T, P) работают вместе.
Вы можете записать их (Alt + T, M, R). Хотя, если вы не можете запустить макрос, не так много смысла. НО вы можете конвертировать макросы в VBScript и управлять Word внешне. VBScript использует подмножество VBA, но не синтаксис, который использует Macro Recorder.