I have the same version of XL you do and EnableCancelKey can be found
in the VBA help file. However, I have recently reinstalled the help files and
they are a little more reliable now (no blank white sheets). In any case,
as I said in my last post, you set it to xlErrorHandler not True or False...
'--
Sub ThisRunsToTheEnd
On Error GoTo StopTheMovie
Application.EnableCancelKey = xlErrorHandler '=2
'Important code that bores the user when run.
'Put DoEvents inside time consuming loops
Exit Sub
StopTheMovie:
If Err.Number <> 18 then
'Do something to handle error
Else
MsgBox "Exiting Video",vbExclamation, "You Won't Learn Anything"
End If
End Sub
--
Jim Cone
Portland, Oregon USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)
"Neptune Dinosaur" <(E-Mail Removed)>
wrote in message
Well, there must to be something deficient about our implementation of Excel
and/or VBA. We have Excel 2003 (11.8211.8202) SP3 and VBA 6.5 (Retail
6.5.1024). I get "no results found" when I enter "EnableCancelKey" in VBA
Help (it is very common to get no relevant results when you type in the exact
words that ought to get a hit). And no matter whether I have EnableCancelKey
set to True or False, I do not get a trappable error when I hit Escape or
Escape/Break or Control/Break during the currency of the macro. The best I
get is the uncontrolled RTE-like box that only allows "Debug" or "End" (which
is the very thing I am trying to avoid as it will be un-savvy users who will
be seeing it).
Do I need to change the change the error-trapping option to "Break On All
Errors"? At present it is on "Break on Unhandled errors", which traps
everything else I have ever needed to trap via the On Error GoTo caper.
I'm looking for a practical solution to this rather than a "this should
work" one, or at least a clue as to whether I might have an environment in
which this cannot be done.
--
Time is just the thing that keeps everything from happening all at once
"Jim Cone" wrote:
> In VBA Help, type in EnableCancelKey.
> You can also find it as a property of the Application object.
>
> Escape/ControlBreak generates Err.Number 18.
> You can trap for that in your error handler if you set EnableCancelKey to xlErrorHandler.
> It is then up to you to write whatever code you need when that error occurs...
> '--
> Exit Sub
> ErrorHandler:
> If Err.Number <> 18 then
> 'Do something to handle error
> Else
> 'Do something to make your impatient user happy
> End If
> --
> Jim Cone
> Portland, Oregon USA
> http://www.realezsites.com/bus/primitivesoftware
> (Excel Add-ins / Excel Programming)
>
>
>
> "Neptune Dinosaur" <(E-Mail Removed)>
> wrote in message
> Hmmmm
>
> Application.EnableCancelKey turns OFF the response to Control-Break. VBA
> help does not return any remotely relevant hits when I type in keywords like
> "Enable" or "CancelKey" or anything relevant to the issue. Where should I be
> looking?
> --
> Time is just the thing that keeps everything from happening all at once
>
>
> "Jim Cone" wrote:
>
> >
> > Application.EnableCancelKey is what you are looking for.
> > Check the help file for details.
> > If you run any lengthy loops, make sure to put a DoEvents function
> > in there someplace.
> > --
> > Jim Cone
> > Portland, Oregon USA
> > http://www.realezsites.com/bus/primitivesoftware
> > (Excel Add-ins / Excel Programming)
> >
> >
> >
> >
> > "Neptune Dinosaur"
> > (E-Mail Removed)>
> > wrote in message
> > G'day macrosaurs ....
> >
> > I've had a good look around for the answer to this and can't find it, so I
> > promise I am not just being lazy in calling for help. I need to be able to
> > trap the Control-Break "event" when the user hits those keys to interrupt a
> > macro, in the same way (if possible) that you trap an error. I have a data
> > input/output application in Excel 2003/VBA that includes a "live demo" of how
> > to use the file. It runs for 2 - 3 minutes or even longer, depending on how
> > long the user lingers over the message boxes. I want the user to be able to
> > abort the demo at any time by hitting Ctrl-Brk without getting the scary run
> > time error that you normally get when you do that, i.e. I would like this to
> > be a neat, controlled exit (my users are not hightly IT-savvy).
> >
> > An alternative that I was considering would be to actually provide Yes/No
> > message boxes at several strategic points throughout the demo, but it would
> > be nice to have the "leave at any time" option if possible.
> >
> > Any ideas?
> > --
> > Time is just the thing that keeps everything from happening all at once
> >
>