View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
patrick molloy patrick molloy is offline
external usenet poster
 
Posts: 391
Default Calling macros from a VB app

"shelling" an application this way probably isn't the
best route for you.

In VB
DIM XLapp as ExcelApplication
or
DIM XLapp as Object

then SET the variable to excel.application or, if the
variable is obkect, use the createobject method.

Now you've got a handle on the application you can open
any known wotkbook
DIM WB as Excel.Workbook
SET WB = XLapp.Workbooks.Open(wb_fullpath)

the WB variable can be an object or workbook. However,
you naw have a handle on the workbook.
To run a macro just call it, for example:-

XLApp.Run "Main", sControlDate, tsLog, Traders, Exports

the syntax is
.RUN proc name [,parameter 1][,parameter2][....]

This gives you absolute control over Excel.
Remeber to clean up...
WBClose False
XLApp.Quit
set WB = Nothing
set XLapp = Nothing

HTH
Patrick Molloy
Microsoft Excel MVP









-----Original Message-----
I currently run macros from a VB application, and my

code within
the app looks something like:

ShellExecute(0&, vbNullString, "excel", q &

file_to_operate_on & q & q & file_macro_is_in & q,
vbNullString, vbNormalFocus)

However, I wanted to ask, suppose file_macro_is_in has

many macros defined
in it, and I want to execute only one particular one.

Does Excel have any
command line arguments that would allow me to do this?

For instance,
making something along the lines of the following

possible:

ShellExecute(0&, vbNullString, "excel", q &

file_to_operate_on & q & q & file_macro_is_in & q & "-
mymacroname", vbNullString, vbNormalFocus)

Also, so that I don't ask too many questions that could

probably be answered
by some reading, can anyone recommend a source for

thorough documentation
on the Excel API + command line arguments to Excel?

Thank you.
.