2014-12-22 4 views
1

워드 문서에 대한 저장 로그를 만들려고합니다. 이 문서를 저장 한 모든 사람을 추적하고 싶습니다. 저장 후 VBA를 쉽게 사용할 수있는 방법을 찾지 못했습니다 (단어가 아님). topic on after save events이 양식이 편집을 한 사람에게 전자 메일로 배포되기 때문에 작동하지 않습니다. 양식을 다시 보내십시오.MS 워드 저장 내역

문서 끝에있는 표에이 내용이 있습니다.

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의 하위 집합을 사용하지만 매크로 레코더가 사용하는 구문은 사용하지 않습니다.