using System; using Excel; using System.Reflection; public class MainClass { public static AppEvents_WorkbookBeforeCloseEventHandler Event_BeforeBookClose; public static DocEvents_ChangeEventHandler Event_ChangeEvent; public static void Main(string[] args) { Application excelApp = new ApplicationClass(); Workbook MyWorkbook = excelApp.Workbooks.Add(Missing.Value); MyWorkbook.Windows.get_Item(1).Caption = "Using Delegates"; Worksheet MyWorksheet1 = (Worksheet)MyWorkbook.Worksheets.get_Item(1); Worksheet MyWorksheet2 = (Worksheet)MyWorkbook.Worksheets.get_Item(2); Worksheet MyWorksheet3 = (Worksheet)MyWorkbook.Worksheets.get_Item(3); MyWorksheet1.Activate(); Event_BeforeBookClose = new AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose); excelApp.WorkbookBeforeClose += Event_BeforeBookClose; Event_ChangeEvent = new DocEvents_ChangeEventHandler(CellChange); MyWorksheet1.Change += Event_ChangeEvent; MyWorksheet2.Change += Event_ChangeEvent; MyWorksheet3.Change += Event_ChangeEvent; excelApp.Visible = true; excelApp.UserControl = true; } private static void CellChange(Range Target) { MessageBox.Show("cell changed"); } private static void BeforeBookClose(Workbook MyWorkbook, ref bool Cancel) { MessageBox.Show("before closing a workbook"); } }