>>Clear >>Local ox As 'excel.application' >>ox = Newobject('excel.application') >>oxEvents = Newobject("ExcelHandler",'','',ox) >>Eventhandler(ox,oxEvents) >>With ox >> .Workbooks.Add >> With .ActiveWorkBook.ActiveSheet >> For ix = 1 To 10 && normally you should never use such data filling >> For jx = 1 To 10 >> .Cells(m.ix,m.jx).Value = m.ix * 1000 + m.jx >> Endfor >> Endfor >> Endwith >> .Visible = .T. >>Endwith >> >>Define Class ExcelHandler As Session OlePublic >> >> Implements AppEvents In "c:\program files\microsoft office\office11\excel.exe" >> >> oHook = Null >> Procedure Init(loHook) >> This.oHook = loHook >> Endproc >> >> Procedure AppEvents_NewWorkbook(Wb As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_SheetSelectionChange(Sh As VARIANT, Target As VARIANT) As VOID >> If Target.Address = Sh.usedrange.Address >> ? 'Attempted to select all',Target.Address,'in sheet',Sh.Name,'Target changed' >> Sh.Cells(1,1).Select >> Endif >> Endproc >> >> Procedure AppEvents_SheetBeforeDoubleClick(Sh As VARIANT, Target As VARIANT, Cancel As LOGICAL @) As VOID >> Endproc >> >> Procedure AppEvents_SheetBeforeRightClick(Sh As VARIANT, Target As VARIANT, Cancel As LOGICAL @) As VOID >> Endproc >> >> Procedure AppEvents_SheetActivate(Sh As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_SheetDeactivate(Sh As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_SheetCalculate(Sh As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_SheetChange(Sh As VARIANT, Target As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookOpen(Wb As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookActivate(Wb As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookDeactivate(Wb As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookBeforeClose(Wb As VARIANT, Cancel As LOGICAL @) As VOID >> ? 'WorkBook closing',Datetime() >> Eventhandler(This.oHook,This,.T.) >> Endproc >> >> Procedure AppEvents_WorkbookBeforeSave(Wb As VARIANT, SaveAsUI As LOGICAL, Cancel As LOGICAL @) As VOID >> ? 'Attempted to save', Datetime(), 'denied silently' >> Cancel = .T. >> Endproc >> >> Procedure AppEvents_WorkbookBeforePrint(Wb As VARIANT, Cancel As LOGICAL @) As VOID >> ? 'Attempted to print', Datetime(), 'denied silently' >> Cancel = .T. >> Endproc >> >> Procedure AppEvents_WorkbookNewSheet(Wb As VARIANT, Sh As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookAddinInstall(Wb As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookAddinUninstall(Wb As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WindowResize(Wb As VARIANT, Wn As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WindowActivate(Wb As VARIANT, Wn As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WindowDeactivate(Wb As VARIANT, Wn As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_SheetFollowHyperlink(Sh As VARIANT, Target As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_SheetPivotTableUpdate(Sh As VARIANT, Target As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookPivotTableCloseConnection(Wb As VARIANT, Target As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookPivotTableOpenConnection(Wb As VARIANT, Target As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookSync(Wb As VARIANT, SyncEventType As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookBeforeXmlImport(Wb As VARIANT, Map As VARIANT, Url As String, IsRefresh As LOGICAL, Cancel As LOGICAL @) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookAfterXmlImport(Wb As VARIANT, Map As VARIANT, IsRefresh As LOGICAL, Result As VARIANT) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookBeforeXmlExport(Wb As VARIANT, Map As VARIANT, Url As String, Cancel As LOGICAL @) As VOID >> Endproc >> >> Procedure AppEvents_WorkbookAfterXmlExport(Wb As VARIANT, Map As VARIANT, Url As String, Result As VARIANT) As VOID >> Endproc >>Enddefine >>>>