1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
   |  // Object for missing (or optional) arguments.
        object oMissing = System.Reflection.Missing.Value;
 
        ApplicationClass oExcel = new ApplicationClass();
 
        oExcel.Visible = false;
        Excel.Workbooks oBooks = oExcel.Workbooks;
        Excel._Workbook oBook = null;
        //oBook = oBooks.Open(@"c:\DocumentExcel\Destination.xls", oMissing, oMissing,
        //    oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
        //    oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
 
        oBook = oBooks.Open("../../../DocumentExcel/Destination.xls", oMissing, oMissing,
            oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
            oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
 
        //// Run the macros.
        RunMacro(oExcel, new Object[] { "MyUpdateMacro" });
 
        //// Quit Excel and clean up.
        oBook.Close(true, oMissing, oMissing);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
        oBook = null;
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
        oBooks = null;
        oExcel.Quit();
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
        oExcel = null;
    }
 
    private void RunMacro(object oApp, object[] oRunArgs)
    {
 
        oApp.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod,null, oApp, oRunArgs);
 
    } |