Afraid all I can do is reiterate my previous response which, as it turns
out, appears to have fully anticipated your scenario and objective -
> Can I somehow get a boolean from WorkbookBeforeSave?
No, neither can you get it (user cancelled close) from any other event, at
least not directly.
> I want to restore that toolbar, or not delete it in the first place.
Try the workaround I suggested previously -
If working with VBA only, you will need to let your close event code run as
normally, ie delete your Toolbar. Then call your routine to add or restore
your toolbar with the Ontime method and a small delay. Five seconds should
be plenty, doesn't matter if user hangs around for more than that as it will
fire when allowed, assuming of course the workbook is still open, ie user
cancelled close.
Eg, add the following in your close event -
' in Workbook_BeforeClose or sub auto_close
Dim sMacro as string
code to delete toolbar, or call relevant routine to do that
sMacro = "AddToolBar"
sMacro = "'" & ThisWorkbook.Name & "'!" & sMacro
Application.Ontime Now + timeserial(0,0,5) sMacro ' adjust the 5 second
delay to suit
Put Sub AddToolBar() in a normal module with code to add or restore your
toolbar. This might be the same routine as called in the Open event. You can
include additional arguments in the macro string if necessary.
Alternatively try Chip Pearson's Com-addin
http://www.cpearson.com/excel/ExcelShutdown.htm
or as I mentioned I also have a Com-addin that employs some different
methods you're welcome to try if interested.
Regards,
Peter T
"TomThumb" <(E-Mail Removed)> wrote in message
news:7F367FEF-77C8-4D7F-9E78-(E-Mail Removed)...
> Peter T:
>
> Thank you for responding to my plea for help. I should have spelled out
> what I have in mind:
>
> I have an Add-In Toolbar that I delete in my WorkBookBeforeClose event
> procedure. But when the user closes and then clicks "Cancel" when asked
to
> Save, the Close is terminated and the toolbar is gone. I want to restore
> that toolbar, or not delete it in the first place.
>
> Can I somehow get a boolean from WorkbookBeforeSave?
> --
> TomThumb
>
>
> "Peter T" wrote:
>
> > "user canceled a close" - do you mean if user cancels Excel-quit or
merely
> > while doing file-close, that might be relevant depending on your
ultimate
> > objective. However in either case there is no direct method to return
your
> > boolean if user cancelled close during the 'save unsaved file(s)
prompt'.
> >
> > I assume you want to know so as to determine whether or not to run your
> > close event code. One workaround is to run the close event as normal,
but
> > also call a routine with the OnTime method to restore as-was. Eg with an
> > addins, might want to remove all menus as normal in the close event then
put
> > them back again a few seconds later if the workbook is still open.
> >
> > A different approach is to use a Com-addin. This has the advantage that
its
> > close event only fires when Excel really is about to quit and won't be
> > cancelled. There are various ways to get the CAI to call a routine in
the wb
> > to run close code 'only' if Excel and hence the file is about to close.
I
> > believe Chip Pearson has made available on his site a CAI to do that,
which
> > makes use of the 'hidden namespace'. I have a CAI that does similar but
with
> > a different approach (doesn't use the namespace) if interested.
> >
> > Regards,
> > Peter T
> >
> > "TomThumb" <(E-Mail Removed)> wrote in message
> > news:65374B59-7DE8-4DC4-BAC8-(E-Mail Removed)...
> > > That is all I need to know: Just how can I obtain what is probably a
> > boolean
> > > value telling me the user canceled a close.
> > > --
> > > TomThumb
> >
> >
> >