> > Hi Experts,
> >
> > I want to Prompt a Customised message just after clicking close button of an programmatically visibled Excel sheet.
> >
> > I have created and made my excel sheet visible with this line of codes.
> >
> > oExcel = CreateObject("Excel.Application")
> > oWorkbook = oExcel.Application.Workbooks.Open(M_FileLoc)
> > oExcel.visible = .T.
> >
> > Any one out there please help me solve my problem.
> >
> >
> > Cheers
> > Kavita
>
>
> o = CREATEOBJECT("myForm")
> o.show(0)
> READ EVENTS
>
> DEFINE CLASS myForm as Form
> PROCEDURE load
> oExcel = CREATEOBJECT("excel.application")
> oWorkbook = oExcel.Application.Workbooks.Open("D:\sur\xls_Docs\emit.xls")
> TRY
> *** Hook up the events
> loEv = CREATEOBJECT("myClass")
> =EVENTHANDLER(oExcel,loEv)
> CATCH TO oerr
> MESSAGEBOX(oerr.message)
> ENDTRY
> oExcel.visible = .T.
> PROCEDURE unload
> CLEAR EVENTS
> RELEASE ALL
> ENDDEFINE
>
>
> DEFINE CLASS myclass AS session OLEPUBLIC
> IMPLEMENTS AppEvents IN "c:\program files\microsoft office\office11\excel.exe"
>
> PROCEDURE AppEvents_NewWorkbook(Wb AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetSelectionChange(Sh AS VARIANT, Target AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetBeforeDoubleClick(Sh AS VARIANT, Target AS VARIANT, Cancel AS LOGICAL @) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetBeforeRightClick(Sh AS VARIANT, Target AS VARIANT, Cancel AS LOGICAL @) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetActivate(Sh AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetDeactivate(Sh AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetCalculate(Sh AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetChange(Sh AS VARIANT, Target AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookOpen(Wb AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookActivate(Wb AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookDeactivate(Wb AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookBeforeClose(Wb AS VARIANT, Cancel AS LOGICAL @) AS VOID
> *MESSAGEBOX("TT")
> =sendMessage()
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookBeforeSave(Wb AS VARIANT, SaveAsUI AS LOGICAL, Cancel AS LOGICAL @) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookBeforePrint(Wb AS VARIANT, Cancel AS LOGICAL @) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookNewSheet(Wb AS VARIANT, Sh AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookAddinInstall(Wb AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookAddinUninstall(Wb AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WindowResize(Wb AS VARIANT, Wn AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WindowActivate(Wb AS VARIANT, Wn AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WindowDeactivate(Wb AS VARIANT, Wn AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetFollowHyperlink(Sh AS VARIANT, Target AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_SheetPivotTableUpdate(Sh AS VARIANT, Target AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookPivotTableCloseConnection(Wb AS VARIANT, Target AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookPivotTableOpenConnection(Wb AS VARIANT, Target AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookSync(Wb AS VARIANT, SyncEventType AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookBeforeXmlImport(Wb AS VARIANT, Map AS VARIANT, Url AS STRING, IsRefresh AS LOGICAL, Cancel AS LOGICAL @) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookAfterXmlImport(Wb AS VARIANT, Map AS VARIANT, IsRefresh AS LOGICAL, Result AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookBeforeXmlExport(Wb AS VARIANT, Map AS VARIANT, Url AS STRING, Cancel AS LOGICAL @) AS VOID
> * add user code here
> ENDPROC
>
> PROCEDURE AppEvents_WorkbookAfterXmlExport(Wb AS VARIANT, Map AS VARIANT, Url AS STRING, Result AS VARIANT) AS VOID
> * add user code here
> ENDPROC
>
> ENDDEFINE
>
>
>
> PROCEDURE sendMessage
> DECLARE INTEGER WTSSendMessage IN WtsApi32;
> INTEGER hServer,;
> LONG SessionId,;
> STRING @pTitle,;
> LONG TitleLength,;
> STRING @pMessage,;
> LONG MessageLength,;
> LONG MsgStyle,;
> LONG MsgTimeout,;
> LONG @pResponse,;
> INTEGER bWait
>
> LOCAL cTitle, cMsg, nResponse
> cTitle = "Event Handler Example"
> cMsg = "This is sent from VFP event handler program, you will get it when you will close workbook."
> nResponse = 0
> * MsgStyle
> * 0 = ok
> * 1 = ok & cancel
> * 2 = Abort, Retry & Ignore
> * 3 = Yes, No & Cancel
> * 4 = Yes, No
> * 5 = Retry, Cancel
> * 6 = Cancel, Try Again, Continue
> *
> * nResponse
> * 1 = ok
> * 2 = Cancel
> * 3 = Abort
> * 4 = Retry
> * 5 = Ignore
> * 6 = Yes
> * 7 = No
> * 10 = Try Again
> * 11 = Continue
> WTSSendMessage(0, 0,;
> @cTitle, LEN(cTitle),;
> @cMsg, LEN(m.cMsg),0 ,0 , @nResponse, 1)
>
> *MESSAGEBOX('Your Response: '+TRANSFORM(nResponse))
>
> ENDPROC
>
>
> -----------------------------------------------------------------------------------------------
> Regards
> Surinder Singh
> Email:
sur200@indiatimes.com> Check my blog for details:
http://weblogs.foxite.com/sur200> ----------------------------------------------------------------------------------------
> *If you understand what you're doing, then you're not learning anything.
Hi Surinder,
Thanks so much for exact solution.
But having problem in this line.....
IMPLEMENTS AppEvents IN "c:\program files\microsoft office\office11\excel.exe"Giving messsage despite "c:\program files\microsoft office\office\excel.exe" exists in the specified path.
Type Library c:\program files\microsoft office\office11\excel.exe not foundCheers
Kavita