Switch Documents (VBA)
This example shows how to switch documents and their model windows.
'----------------------------------------------
'
' Preconditions: The specified documents exist in the
' same
folder as the macro.
'
' Postcondition: The specified documents are opened in
' in
their own model windows and then closed.
'
'----------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim swFrame As SldWorks.Frame
Dim swModelWindow As SldWorks.ModelWindow
Dim varModelWindows As Variant
Dim vobj As Variant
Dim strFolder As String
Dim longstatus As Long
Dim longwarnings As Long
Dim HWnd As Long
Sub main()
Set
swApp = Application.SldWorks
strFolder
= swApp.GetCurrentMacroPathFolder
' Open the specified
documents in their own windows
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\Knob.SLDPRT", 1, 0, "", longstatus, longwarnings)
swApp.CreateNewWindow
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\Cube-with-Hole.SLDPRT", 1, 0, "", longstatus,
longwarnings)
swApp.CreateNewWindow
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\bearing.sldprt", 1, 0, "", longstatus, longwarnings)
swApp.CreateNewWindow
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\retaining_ring.sldprt", 1, 0, "", longstatus,
longwarnings)
swApp.CreateNewWindow
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\shaft.sldprt", 1, 0, "", longstatus, longwarnings)
swApp.CreateNewWindow
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\shaft2.sldprt", 1, 0, "", longstatus, longwarnings)
swApp.CreateNewWindow
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\Assem1.SLDASM", 2, 0, "", longstatus, longwarnings)
swApp.CreateNewWindow
Set
swModelDoc = swApp.OpenDoc6(strFolder
+ "\Assem1.SLDDRW", 3, 0, "", longstatus, longwarnings)
swApp.CreateNewWindow
Set
swFrame = swApp.Frame
varModelWindows
= swFrame.ModelWindows
For
Each vobj In varModelWindows
Set
swWindow = vobj
'
Get the model document in this model window
Set
swModelDoc = swModelWindow.ModelDoc
'Rebuild
the document
swModelDoc.EditRebuild3
Set
swModelDoc = Nothing
'
Show the model window
swFrame.ShowModelWindow swWindow
'
Get and print the model window handle
HWnd
= swModelWindow.HWnd
Debug.Print
HWnd
'Get
and print the title of the model window as it is seen in the model window's
title bar
Debug.Print
swModelWindow.Title
Next
vobj
Stop
strFolder
= ""
'
Specify TRUE to close all documents, specify FALSE to close
'
only the documents not modified
swApp.CloseAllDocuments True
End Sub