Calling macros from a VB app

G

Guest

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.
 
P

Patrick Molloy

"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)
 
G

Guest

Thank you for the response. I tried fitting the code
into my application but received a compilation error.
What library do I need to include to be able to use
objects of type "ExcelApplication"? Also, I am very new
to Excel programming, so I would be very grateful if
you could point me toward API documentation so that I
can read it versus troubling people on the forums
unnecessarily.

Patrick Molloy said:
"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.
.
 

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