How to get "/automation" when automating?

M

MikeFromEurope

According to MS, the /automation switch for Excel disables all
automatically opened files and auto-run macros. You get this feature
when starting Excel like "excel.exe /automation". But, I am starting
Excel from a C# program, not a command line, and I am having issues
with auto-run macros. How can I disable the auto-run macros when
actually automating Excel? A snippet of my code is below.

Thanks,
Mike

*************

MSExcel.Application app = new MSExcel.Application();
try
{
app.Workbooks.Open(filePath, Missing.Value, Missing.Value,
Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value,
Missing.Value);
...
}
 
J

Jim Rech

When you start Excel via automation, which I believe you're doing, the
/automation switch is automatically applied (thus the name).

For unbelievers put this in a VBS file and run it:

Set XL = CreateObject("Excel.Application")
XL.Workbooks.Open "c:\Book1.xls", 3
XL.Visible = True

Note that no add-ins, Personal.xls, etc. are opened.

If you're opening a workbook subsequently of course its events will run.
Maybe you should expand on the issues you're having.

--
Jim
| According to MS, the /automation switch for Excel disables all
| automatically opened files and auto-run macros. You get this feature
| when starting Excel like "excel.exe /automation". But, I am starting
| Excel from a C# program, not a command line, and I am having issues
| with auto-run macros. How can I disable the auto-run macros when
| actually automating Excel? A snippet of my code is below.
|
| Thanks,
| Mike
|
| *************
|
| MSExcel.Application app = new MSExcel.Application();
| try
| {
| app.Workbooks.Open(filePath, Missing.Value, Missing.Value,
| Missing.Value,
| Missing.Value, Missing.Value, Missing.Value, Missing.Value,
| Missing.Value,
| Missing.Value, Missing.Value, Missing.Value, Missing.Value,
| Missing.Value,
| Missing.Value);
| ...
| }
|
 
M

MikeFromEurope

The specific auto-run macro that I know of with potential to cause
trouble at this point is "Workbook_Open()". I have been tasked with
writing a server based program to update a bunch of user's
spreadsheets. I wondered what would happen if users made
Workbook_Open macros when my code opened those spreadsheets. Well,
they get run. So, my issue is the potential for trouble of running
unknown code. Is there something I can do?

Thanks,
Mike
 
N

NickHK

Mike,
Application.EnableEvents=False

Of course, you will need to set to True after opening if any of your own
code depends on Excel events.

NickHK
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top