从模板创建文档,然后在MailMerge事件中使用该文档

时间:2014-05-28 05:59:59

标签: vba ms-word word-vba

MailMerge应用程序事件中访问通过打开启用宏的模板创建的Document对象的最佳方法是什么?

更具体地说,我正在为支持宏的模板 Template.dotm 编写代码。打开该模板后,它会创建一个新文档,通常称为 Document1 ,并引用 Template.dotm

这里是 Template.dotm ThisDocument模块。

Dim objEventHandler As clsEventHandler

Private Sub Document_New()
  Set objEventHandler = New clsEventHandler
  Set objEventHandler.AppWithEvents = Word.Application
End Sub

Private Sub Document_Close()
  Set objEventHandler = Nothing
End Sub

这是我的事件处理程序类。

Public WithEvents AppWithEvents As Word.Application

Private Sub AppWithEvents_MailMergeBeforeRecordMerge(ByVal Doc As Document, Cancel As Boolean)
  'code needs to reference "Document1"
End Sub

MailMergeBeforeRecordMerge程序中,我想访问 Document1 This question接近解决这个问题,但并不完全正确。

什么不起作用:

  • ThisDocument Template.dotm
  • ActiveDocument指的是mailmerge结果文件。
  • ActiveDocument.AttachedTemplate可能是要走的路,但我还没弄清楚如何从Document对象中解析Template对象。
  • 在紧要关头,我可能会循环打开文档并通过文件名识别它,但我不知道用户在运行时可能打开的其他文档,所以我更喜欢不易破解策略。

很多,非常感谢你的任何建议。

0 个答案:

没有答案