Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #4  
Old 04-27-2012, 01:48 AM
macropod's Avatar
macropod macropod is offline Code to stop as "save as" if the mail merge has not been done Windows 7 64bit Code to stop as "save as" if the mail merge has not been done Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 22,512
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Hi Tony,

Using Events requires that you instantiate the app object class. To do this, create a new class module in your mailmerge main document to register the desired Word events. At the top of the module put:
Code:
Public WithEvents wdApp As Word.Application
Public WithEvents wdDoc As Word.Document
Below that, add the following code to intercept the save event:
Code:
Private Sub wdApp_DocumentBeforeClose(ByVal Doc As Document, Cancel As Boolean)
If Doc.MailMerge.MainDocumentType <> wdNotAMergeDocument Then
  MsgBox "This is the mailmerge main document," & vbCr & _
  "not the output document." & vbCr & vbCr & _
  "Do not send this document to the client.", vbExclamation
End If
End Sub
 
Private Sub wdApp_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
Dim Rslt As Variant
If Doc.MailMerge.MainDocumentType <> wdNotAMergeDocument Then
  Rslt = MsgBox("This is the mailmerge main document," & vbCr & _
  "not the output document." & vbCr & vbCr & _
  "Do not send this document to the client." & vbCr & vbCr & _
  "Continue Saving?", vbOKCancel)
End If
If Rslt = vbCancel Then Cancel = True
End Sub
The above code should give the messages you desire.

Then, in a normal code module, put:
Code:
Dim wdAppClass As New ThisApplication
Public Sub AutoExec()
Set wdAppClass.wdApp = Word.Application
End Sub
This code will allow the events in your Word document to be called.
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote
 

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
hit okay to "Merge to E-mail" nothing happened mubi_masti Outlook 0 10-21-2011 03:06 PM
Code to stop as &quot;save as&quot; if the mail merge has not been done How to choose a "List" for certain "Heading" from "Modify" tool? Jamal NUMAN Word 2 07-03-2011 03:11 AM
Can I stop the right click "move here" feature? BillAnderson PowerPoint 0 04-16-2011 02:42 PM
How to stop "replace"'ing new words (in desperate need of advice) bme081 Word 6 11-02-2009 05:57 AM
VBA Code for making "mailings" tab active jandrade15 Mail Merge 0 08-01-2009 09:20 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 04:24 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft