Add ActiveX Tabs to Model View (VBA)
This example shows how to add two ActiveX tabs to a model view.
'----------------------------------------------------------
' Preconditions:
' 1. In the IDE:
' a. Insert Microsoft Calendar Control 2007
' (click Insert > Components > Microsoft Calendar
' Control 2007).
' b. Reference Microsoft Calendar Control 2007's ActiveX
' control file (click Tools > References > Browse button,
' browse to c:\Program Files\Microsoft Office\Office12,
' and select MSCAL.OCX).
' 2. Specified part document exists.
'
' Postconditions:
' 1. Two new tabs are added to the model view.
' 2. New tabs have Microsoft Calendar Controls,
' Calendar 1 and Calendar 2.
' 3. Model view is active.
' 4. To verify the ActiveX controls on the new tabs,
' interactively click each Calendar tab.
'
' NOTE: Because the part document is used elsewhere,
' do not save any changes when closing it.
'------------------------------------------------------------
Option Explicit
Sub Main()
Const calTabName1 As String = "Calendar 1"
Const calTabName2 As String = "Calendar 2"
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModViewMgr As SldWorks.ModelViewManager
Dim calCtrl1 As MSACAL.Calendar
Dim calCtrl2 As MSACAL.Calendar
Dim fileName As String
Dim errors As Long
Dim warnings As Long
Dim status As Boolean
Set swApp = CreateObject("SldWorks.Application")
fileName = "c:\Program Files\SolidWorks Corp\SolidWorks (3)\samples\tutorial\fillets\knob.sldprt"
Set swModel = swApp.OpenDoc6(fileName, swDocPART, swOpenDocOptions_Silent, "", errors, warnings)
Set swModViewMgr = swModel.ModelViewManager
' Add the ActiveX control tabs
Set calCtrl1 = swModViewMgr.AddControl(calTabName1, "MSCAL.Calendar", "")
Set calCtrl2 = swModViewMgr.AddControl(calTabName2, "MSCAL.Calendar", "")
' Set the background colors for the ActiveX controls
calCtrl1.BackColor = RGB(255, 0, 0) 'red
calCtrl2.BackColor = RGB(0, 0, 0) 'black
status = swModViewMgr.ActivateControlTab(calTabName1)
status = swModViewMgr.IsControlTabActive(calTabName1)
status = swModViewMgr.IsModelTabActive
' Switch back to model view
status = swModViewMgr.ActivateModelTab
End Sub