Stuart McLachlan
stuart at lexacorp.com.pg
Fri Feb 27 14:35:10 CST 2009
How about xlBook.Application.Run "MacroName", Join(MyParamArray()",") -- Stuart On 27 Feb 2009 at 9:50, jwcolby wrote: > I am trying to figure out how to automate an excel macro with an unknown number of parameters. I > doubt it is possible but I thought I would ask. > > If you want to run a macro in Excel you have to get a pointer to the workbook. You then use the syntax: > > xlBook.Application.Run "MacroName", "string parameter 1", intParameter2, etc > > In other words, you can pass as many parameters as the macro needs. So... > > I have long ago written a class (of course) that wraps Excel functionality. It can open, modify, > close etc an Excel workbook. An excellent example BTW of where it is useful to create a class that > does not inherit anything. To my knowledge even .Net cannot inherit an Excel application. > > So one of the methods of this class can run a macro in the workbook. However to this point it can > only automate a macro that does not take parameters. I want to add a ParamArray to my method to > feed in parameters to be sent to the macro. > > The only way I can see to do this (and it is UGLY) is to build a case statement that looks at how > many variables are in the paramarray and just select a different xlbook.Application.Run statement: > > (pseudocode) > > select case ubound(MyParamArray) > case 1 > xlBook.Application.Run "MacroName", MyParamArray(0) > case 2 > xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1) > case 3 > xlBook.Application.Run "MacroName", MyParamArray(0), MyParamArray(1), MyParamArray(3) > end select > > Do that for a number that would meet most cases and punt. > > I HATE punting! > > Has anyone ever solved the problem of passing the contents of a ParamArray to another object that > accepts a paramarray? > > -- > John W. Colby > www.ColbyConsulting.com > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com