aelena.com

15 January 2007

La forma más simple de ejecutar una macro desde c#

Filed under: Office, c#, excel, macros — admin @ 12:09

Supongamos que queremos ejecutar una macro en excel desde c#. La forma más sencilla que veo yo es a través de Reflection. Veamos un ejemplo:

ApplicationClass excelApp = new ApplicationClass();
Workbook w = excelApp.Workbooks.Open("miExcel.xls",Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing );

RunMacro(w.Application, new object [] {"Nombre_Macro"});

Con este código hemos abierto un archivo de excel y hemos llamado a una función que nos va a ejecutar la macro.

Veamos ahora esa función:

private static void RunMacro(object oApp, object[] oRunArgs)
{
oApp.GetType().InvokeMember("Run",
System.Reflection.BindingFlags.Default |
System.Reflection.BindingFlags.InvokeMethod,
null, oApp, oRunArgs);
}

Así de sencillo. Saludos.