How To Run VB Macro from C/C++ exe

G

Guest

Hi

I have a C program that prints to a text file a VB macro that does excel
automation. To run this macro, I need to start an excel app (i.e by going to
START->RUN-->EXCEL ) and then click on TOOLS->MACRO->CREATE NEW MACRO, supply
a name and then copy the contents of the text file (which is output of the
..exe ) and then run the macro. The macro now, operates on a excel file and
saves and closes it. " All this is working fine. "

Is there a way to automtate this task, so no user intervention is required.
Ideally, what I want is:
(1) Launch my C based program , ie. Execute the application
(2) This will now, Create the macro and also RUN it.

My OBJECTIVE In short is:
How do I run a macro from C program ?

Preferably, I would not like to use C# or .NET. my application is failry
simple; and also, I am not not a C# or .NET developer. I have seen some
articles on MSDN but they are not really helpful.
If someone can send me or tell me how to launch a macro from C, that would
be great!
Please bear in mind that I have "NO" knowledge of VB or C#. Some MSDN
examples declare vairalbes that I dont understand at all.
 
T

Tim Williams

You could create a "slave" Excel workbook which (using the workbook_open
event) would
1. look for your exported text file in a specified location
2. using VBA code, import the macro code into itself
3. run the newly-created macro against the required workbook (opening it
first if not already open)
4. delete the imported code and close itself

All that would be required from C would be to launch the slave workbook.

How does the output code vary between runs? Could you just export whatever
parameters are varying as a delimited text file and have your "slave"
workbook read them in and (using a generic macro) operate on them?

Tim
 

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