Results 1 to 3 of 3
Thread: AutoExit Macro (WORD 97/2000)
2002-02-15, 11:45 #1
- Join Date
- Jan 2002
- London, Gtr London, England
- Thanked 0 Times in 0 Posts
AutoExit Macro (WORD 97/2000)
I have defined my own AutoExit macro (plus other such AutoClose, AutoNew, AutoOpen, FileSave, FileSaveAs ...).
The problem that my AutoExit macro is NOT being invoked when I close WORD (by clicking on 'X'). WORD display the normal do you want to save file xxx etc and continues to do its own thing.
Anyone, any ideas please. Getting desperate now. Thanks.Thanks.
2002-02-15, 12:23 #2
- Join Date
- Mar 2001
- Springfield, Ohio, USA
- Thanked 2 Times in 2 Posts
Re: AutoExit Macro (WORD 97/2000)
You need to switch to document events:
<font face="Comic Sans MS">Sam Barrett, CACI </font face=comic>
- <LI>From Word, press <Alt><F11> to go to the VBE
<LI>In the upper-left Project Explorer window, double click the ThisDocument icon under your document
<LI>In the new code window, press the Object drop-down and select Document
<LI>Press the Procedure drop-down and select Close
<LI>At the top enter "Option Explicit"
<LI>Copy the code from your AutoOpen and AutoClose into this skeleton
<LI>Repeat the above in the Normal | Microsoft Word Objects | ThisDocument and replace your AutoNew.
<small>And the things that you have heard... commit these to faithful men who will be able to teach others also. 2 Timothy 2:2</small>
2002-02-17, 22:21 #3
- Join Date
- Dec 2000
- New York, NY
- Thanked 29 Times in 27 Posts
Re: AutoExit vs. Application_Quit
The document events available in ThisDocument are: New, Open, and Close. This still won't provide for an autoexit event.
I've read in the past that there is no easy way to trap the "close app via clicking on 'X' event' - but have just played around with the Application.Quit event and it does seem to work. (Not sure, but this may not be available in Word 97.)
What needs to be done: you need to have a global template that is in the Startup directory, so that it is always running when Word is running.
Put a standard code module in this global template.
At the beginning of the standard module (before any procedures), put something like:
Public AppEvents As New clsAppEvents
Now below this put a procedure like this:
Set AppEvents.App = Word.Application
This will automatically create a new application-level object, every time Word is launched.
Now, in this same global template, add a class module. Rename the module "clsAppEvents" (i.e. it needs to have the same name as was used in the Public declaration at the beginning of the standard module).
At the top of this class module (i.e. before any procedures), put the following statement:
Public WithEvents App As Word.Application
And below this, add the following procedure:
Private Sub App_Quit()
MsgBox "Did we trap the Quit event?" '(this is just a test)
'You can put whatever code you want here
If you put the above into place, it should trap all application close events, including clicking on the "X".