Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. articles. downloads. faq. members. files. rss.
 From: Kavita Jaiswal
  Where is Kavita Jaiswal?
 Calcutta
 India
 Kavita Jaiswal
 To: surinder singh
  Where is surinder singh?
 mumbai
 India
 surinder singh
Subject: RE: Excel Automation
Thread ID: 186837 Message ID: 187066 # Views: 1 # Ratings: 0
Version: Visual FoxPro 9 Category: Microsoft Office Automation
Date: Friday, August 1, 2008 11:02:02 AM         
   



> > 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 found






Cheers
Kavita

ENTIRE THREAD

Excel Automation Posted by KAVITA JAISWAL @ 7/31/2008 8:31:40 AM
RE: Excel Automation Posted by OM RAJAN @ 7/31/2008 9:49:01 AM
RE: Excel Automation Posted by KAVITA JAISWAL @ 7/31/2008 9:56:37 AM
RE: Excel Automation Posted by Stefan Wuebbe @ 7/31/2008 10:02:58 AM
RE: Excel Automation Posted by Anders Altberg @ 7/31/2008 10:03:32 AM
RE: Excel Automation Posted by surinder singh @ 7/31/2008 10:34:38 AM
RE: Excel Automation Posted by KAVITA JAISWAL @ 8/1/2008 11:02:02 AM
RE: Excel Automation Posted by surinder singh @ 8/1/2008 12:05:20 PM
RE: Excel Automation Posted by KAVITA JAISWAL @ 8/1/2008 3:21:51 PM
RE: Excel Automation Posted by Marcia Akins @ 8/1/2008 3:04:42 PM
RE: Excel Automation Posted by Yousfi Benameur @ 7/31/2008 5:46:21 PM
RE: Excel Automation Posted by Marcia Akins @ 8/1/2008 2:59:31 PM
RE: Excel Automation Posted by Yousfi Benameur @ 8/3/2008 12:21:10 PM
RE: Excel Automation Posted by Marcia Akins @ 8/3/2008 1:47:51 PM
RE: Excel Automation Posted by Yousfi Benameur @ 8/3/2008 4:36:17 PM
RE: Excel Automation Posted by Marcia Akins @ 8/4/2008 12:46:42 PM
RE: Excel Automation Posted by Yousfi Benameur @ 8/3/2008 2:10:20 PM
RE: Excel Automation Posted by KAVITA JAISWAL @ 8/6/2008 11:57:29 AM
RE: Excel Automation Posted by surinder singh @ 8/6/2008 12:43:14 PM
RE: Excel Automation Posted by KAVITA JAISWAL @ 8/7/2008 6:51:20 AM
RE: Excel Automation Posted by Yousfi Benameur @ 8/7/2008 12:11:06 AM