Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Implementing Excel events
Message
From
02/10/2009 05:40:14
Cetin Basoz
Engineerica Inc.
Izmir, Turkey
 
 
To
02/10/2009 05:31:30
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Environment versions
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Miscellaneous
Thread ID:
01427263
Message ID:
01427270
Views:
50
No
Cetin

>Hi Cetin,
>Hmmm...
> Implements AppEvents In "c:\program files\microsoft office\office11\excel.exe"
>
>If I compile and customer has Excel installed somewhere to D:\MyOffice\Office11\excel.exe" - what will happens in this case?
>
>should line Implements In be dynamic depends from customer Office installation?
>
>Thanks
>Denis
>
>
>
>>Denis,
>>Here is a sample:
>>
>>
>>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
>>
>>
>>You don't have pathing problem since it would be used during development. When you compile your exe you also create that COM class.
>>
>>Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Previous
Reply
Map
View

Click here to load this message in the networking platform