capturing TabStrip events inside an MsForm
If you are really intent on putting your Tabstrip in the Frame you can trap
its events in a 'WithEvents' class
Eg, code in Class1 and a normal module as indicated, run StartEvents
(assumes TabStrip1 is *embedded* in Frame1)
''' code in Class1
Public WithEvents tabStrip As MSForms.tabStrip
Private Sub tabStrip_Change()
With tabStrip
MsgBox .Tabs(.Value).Caption
End With
End Sub
''' end Class1
'' code in a normal module
Private cls1 As Class1
Sub StartEvents()
Dim oleF As OLEObject
Set cls1 = New Class1
Set oleF = ActiveSheet.OLEObjects("Frame1")
Set cls1.tabStrip = oleF.Object.Controls("TabStrip1")
End Sub
Sub StopEvents()
Set cls1 = Nothing
End Sub
I would have thought though Chip Pearson's suggestion is simpler, or group
all controls within a drawing shape, formatted to look like a frame.
Regards,
Peter T
"Strobo" wrote in message
...
Hi,
Im trying to display results from a database query in a sort of a 'form'.
I need it to be displayed on the actual worksheet, not as a separate
window
as would be the case when using the UserForm...so Im using an MSFrame
(Microsoft Forms 2.0 Frame) directly on the worksheet and I'm putting all
my
info in there.
Now,
In order to display different sets of data in different tabs Im trying to
use a TabStrip (the form looks the same for all the sets)...
The problem I am having is how to capture the TabStrip events when the
TabStrip is located inside an MsFrame...
If it was an UserForm it would be as simple as
Private Sub TabStrip1_Change()
but in the case of the Frame I cannot access the controls directly.
I generally access them using
Me.frame1.Controls("TabStrip1")
So, any ideas how to go about this?
Thanks!!!
ps. Using Excel 2003
|