in reply to Win32::OLE: how to call Excel VBA macros and catch all VBA errors without dialog boxes appearing?
It is possible to control whether system hard error dialogs are displayed (or not), on a per-process basis, using the system API SetErrorMode(). But in your case, this would need to be applied to Excel.exe.
The error mode setting is inherited by child processes, so if your perl script had the dialogs disabled, and you started the excel instance from your perl script (rather than attaching to an existing instance), then Excel should inherit the same error mode setting as your perl script. Of course, there is nothing to stop Excel setting it back when it starts.
The SetErrorMode() API is exported by Win32API::File (Check the casing!). You can also get at it via Win32::API if that works for your installation. Or Inline::C if you have a compiler set up.
I don't have Excel, so I can't try this.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Win32::OLE: how to call Excel VBA macros and catch all VBA errors without dialog boxes appearing?
by Mike Rosenblum (Initiate) on Mar 11, 2010 at 16:38 UTC | |
|
Re^2: Win32::OLE: how to call Excel VBA macros and catch all VBA errors without dialog boxes appearing?
by popx (Initiate) on Apr 07, 2010 at 05:09 UTC |