如何确定是否将“SaveChanges:= wdDoNotSaveChanges”传递给Interop.Word.Document.Close()

时间:2011-05-19 05:30:57

标签: vb.net ms-word interop vsto

我遇到的问题是我正在处理的Office插件,这是为Office 2003&使用VSTO在VB.NET 3.5中编写插件。

问题来自一些外部代码,它自动化邮件合并,打开邮件合并模板,合并然后关闭模板文档。关闭是通过以下代码完成的:

objWord.Documents(sDoco).Close SaveChanges:=wdDoNotSaveChanges, OriginalFormat:=wdPromptUser

由于我的插件中有一些逻辑,从Interop.Word.Application.DocumentBeforeClose事件发起,会打开一个消息框,阻止Office文档关闭,这会破坏自动化。

我是否有办法在SaveChanges事件中确定关闭Office.Interop.Word.Application参数(如果有),例如DocumentBeforeClose?我正在尝试捕获此参数并确定它是否设置为wdDoNotSaveChanges,以便我可以解决此问题。

1 个答案:

答案 0 :(得分:0)

我很确定你在DocumentBeforeClose之前得到DocumentSave事件,所以在其中设置一个标志,如果该标志设置为close,你就知道文档已经保存,但如果没有,则不是。我必须做类似的事情才能知道文件是SAVED-AS还是SAVED。

我不知道有什么方法可以从DocumentBeforeClose中查询该参数的状态。