Microsoft KB Archive/213532

= XL2000: Auto_Close Macros Run When You Use Application.Quit =

Article ID: 213532

Article Last Modified on 10/11/2006

-

APPLIES TO


 * Microsoft Excel 2000 Standard Edition

-



This article was previously published under Q213532





SYMPTOMS
In Microsoft Excel, when you run a Microsoft Visual Basic for Applications macro that contains the command Application.Quit, and any open workbooks contain Auto_Close macros, all of the Auto_Close macros run before Microsoft Excel quits.



CAUSE
This behavior occurs because Microsoft Excel allows Auto_Close macros to run when you use Application.Quit to quit the program. When you use Application.Quit in versions of Microsoft Excel earlier than Excel 97, the program quits immediately without running any Auto_Close macros. This behavior is by design of Microsoft Excel.



WORKAROUND
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

Sub QuitMSExcel

'Loop through all open workbooks. For Each xWkbk In Workbooks

'If the active workbook does not contain this macro, its name is          'different. If this is the case, then If xWkbk.Name <> ThisWorkbook.Name Then

'Close the workbook and save changes. Note that you 'don't have to save changes if you don't want to. Closing 'the workbook through this code, prevents the Auto_Close 'macros from running. xWkbk.Close SaveChanges:=True

End If

'Loop to the next workbook. When all workbooks except for this 'workbook are closed, exit the loop. Next xWkbk

'Quit Microsoft Excel. Application.Quit

'This line makes sure that an Auto_Close macro in this workbook 'does not run, if it exists. ThisWorkbook.Close SaveChanges:=True

End Sub



MORE INFORMATION
In versions of Microsoft Excel earlier than Excel 97, when you use Application.Quit to quit, Microsoft Excel may still prompt you to save changes in any open workbooks. However, Auto_Close macros in these workbooks do not run.

In the current version of Microsoft Excel, when you use Application.Quit to quit Microsoft Excel, the Auto_Close macros run. Because of this behavior, you may want to make changes to macros that use the Application.Quit command. If you modify your macros using the workaround in this article, they still work correctly in earlier versions of Microsoft Excel.

Additional query words: XL2000

Keywords: kbdtacode kbprb KB213532

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.