현재 문서를 저장하면 일부 처리를 수행하는 사용자 지정 Word 서식 파일을 작성하고 있습니다.Word VBA를 사용하여 Office2007에서 사용자가 선택하는 저장 기능을 감지합니다.
Office2007에서 문서를 저장하려면 저장 및 다른 이름으로 저장 기능을 사용하고 FileSave 및 FileSaveAs 매크로를 사용하여 이벤트를 처리 할 수 있습니다.
사용자가 SaveAs 옵션을 가리키면 다른 하위 옵션이 표시됩니다. 문서로 저장, Word 템플릿으로, Word 97-2003 문서로 표시 등이 하위 옵션에는없는 것 같습니다. 그들 자신의 이벤트이지만, 사용자가 그들을 언제 사용하는지 알고 싶습니다.
그래서 DocumentBeforeSave 이벤트를 사용하는 아이디어가 떠오르지 만 표준 저장/저장 옵션 또는 하위 옵션으로 저장이 발생했는지 파악해야합니다.
DocumentBeforeSave 이벤트가 정상 저장 메서드 중 하나가 발생했는지 확인하기 위해 Save/SaveAs 함수에서 변수를 True로 설정하면 변수를 False로 되돌릴 수 있습니다.
하지만 다른 방법으로 실험 한 후에 ThisDocument와 BeforeSave 이벤트가있는 클래스 모듈간에 변수 값을 전달할 수있는 방법을 알 수 없습니다.
아이디어가 있으십니까? 감사!
편집 : 예제 코드가 작동하지 않습니다 :
는은의 ThisDocument :은
Public pSSave As Boolean
Public Property Get SSave() As Boolean
SSave = pSSave
End Property
Public Property Let SSave(Value As Boolean)
pSSave = Value
End Property
Sub FileSave()
Me.SSave = True
If SSave = True Then
MsgBox "True"
End If
Application.ActiveDocument.Save
If SSave = True Then
MsgBox "True"
End If
End Sub
는 클래스 모듈은 :
Private Sub App_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
If Application.ActiveDocument.SSave = False Then
MsgBox "False"
End If
End Sub
클래스 모듈 등록 완료 적절한 나는 그 코드를 붙여 넣지 않을거야.
표시되는 결과는 참, 거짓, 이론적으로는 참, 참이어야합니다.
내가 제대로 할 수 있는지 확실하지 않습니다 ... 실제 목표는 무엇입니까? 저장을 허용하거나 허용하지 않겠습니까? 프로세스를 제어합니까? 또는 단순히 객체에서 클래스로 값을 전달 ...당신은 약간의 아이디어가있는 것 같지만 질문은 명확하지 않습니다. 당신은 귀하의 요구를 더 잘 이해할 수있는 몇 가지 코드를 추가 할 수 있습니다 ... –
사용자가 표준 저장 및 SaveAs 메뉴 항목을 사용하지 않고 하위 옵션을 사용하여 문서를 저장할 때이를 감지하고 코드 스 니펫을 실행하고 싶습니다. – Steve
클래스에 'property let \ get'을 추가로 만들 수 있으며이 속성을 사용하면 클래스에 값을 전달할 수 있습니다. 아니면 당신이 전달하는 그 가치를 취할 수있는 클래스에 추가'public 변수'를 추가하십시오 –