tags:

views:

1379

answers:

4

Hi all, just wondering if anyone could suggest why I might be getting an error? I'm currently trying to execute a macro in a workbook by calling the Application.Run method that the interop exposes.

It's currently throwing the following COM Exception:

{System.Runtime.InteropServices.COMException (0x800A03EC): Cannot run the macro Macro1'. 
The macro may not be available in this workbook or all macros may be disabled.

I've put the containing workbook in a trusted location, set all of the security settings to their minimum values, and trusted programmatic access to my object model. I'm entirely out of ideas and Google's failed me so far!

Has anyone done this, or can you suggest anything which I could try?

Many thanks!

A: 

If the macro is stored in the personal workbook, you may have to reference the workbook name: personal.xls!macroname

Remou
Thanks for that - unfortunately not the case here, I should have mentioned in the original question!
Jon Artus
+1  A: 

It turned out that there were actually two identically-named macros which had been injected into the workbook. The exception above translates to a "Compile Error: Ambiguous name detected" error in VBA - I should have gone straight into VBA to look at this, rather than assuming that something odd was happening with the interop.

Jon Artus
A: 

Although this is already answered, Ive had the SAME symptoms. Finally, ive resolved the problem with this hotfix of Microsoft

gmalggievato
A: 

The same problem pops up when calling some third party macros using Interop, and this is due to the fact that the addins would not be correctly registered with Excel. For this case, this might be helpful:

http://stackoverflow.com/questions/1154558/how-to-load-an-excel-addin-using-interop

Fayssal El Moufatich