Using Office Events
/* * C# Programmers Pocket Consultant * Author: Gregory S. MacBeth * Email: gmacbeth@comporium.net * Create Date: June 27, 2003 * Last Modified Date: * Version: 1 */ using System; using Excel; using System.Reflection; namespace Client.Chapter_19___Office_Integration { public class UsingOfficeEvents { public static AppEvents_WorkbookBeforeCloseEventHandler Event_BeforeBookClose; public static DocEvents_ChangeEventHandler Event_ChangeEvent; static void Main(string[] args) { Application MyExcel = new ApplicationClass(); Workbook MyWorkbook = MyExcel.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(); //Add Event Handler for the BeforeClose Event Event_BeforeBookClose = new AppEvents_WorkbookBeforeCloseEventHandler(BeforeBookClose); MyExcel.WorkbookBeforeClose += Event_BeforeBookClose; //Add Event Handler for the change Event Event_ChangeEvent = new DocEvents_ChangeEventHandler(CellChange); MyWorksheet1.Change += Event_ChangeEvent; MyWorksheet2.Change += Event_ChangeEvent; MyWorksheet3.Change += Event_ChangeEvent; MyExcel.Visible = true; MyExcel.UserControl = true; } private static void CellChange(Range Target) { //Gets called when you change a cell } private static void BeforeBookClose(Workbook MyWorkbook, ref bool Cancel) { //Gets called before closing a workbook } } }