API: Close all open documents

I had to close all the open documents in an application I was writing. I ended up having to work this out, so thought I would share it. It's VB.NET, but could be easily modified to work in a macro or VB6.

Private Function CloseAllOpenSWFiles()

'close all open docs

Dim OpenDocs As SldWorks.EnumDocuments2

Dim OpenDoc As SldWorks.ModelDoc2

OpenDocs = swApp.EnumDocuments2()

OpenDoc = swApp.ActiveDoc

While Not OpenDoc Is Nothing

Try

OpenDoc.Save3(SwConst.swSaveAsOptions_e.swSaveAsOptions_SaveReferenced, 0,

0)

Debug.WriteLine("Closing " & OpenDoc.GetPathName)

swApp.CloseDoc(OpenDoc.GetPathName)

OpenDocs.Next(1, OpenDoc, 0)

Catch ex As Exception

'if errors out, then all documents have been closed

OpenDoc = Nothing

End Try

End While

End Function

Reply to
Evan T. Basalik
Loading thread data ...

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.