AnsweredAssumed Answered

Export each sheet macro

Question asked by Marko Topalovic on Oct 17, 2018
Latest reply on Nov 11, 2018 by Marko Topalovic



I have been using a macro I found in this forum to export each sheet as a separate file. This macro is working fine but the "problem" we have when we are using this macro is that filename is generated as "filename - sheetname.extension" and for our needs we have to save the files as "sheetname - filename.extension". the reason behind this is that we have to place SAP code in front of everything to be visible.

I have tried to modify the macrto for our needs but I am amateur in programming and I can not find the line in code where I can change the order of the generated file name.

Can someone please tell me how can I modify this code? Also, can I implement custom property in this code?





Option Explicit



Dim swApp               As SldWorks.SldWorks

Dim swModel             As SldWorks.ModelDoc2

Dim swModelDocExt       As SldWorks.ModelDocExtension

Dim swExportPDFData     As SldWorks.ExportPdfData

Dim swDraw              As SldWorks.DrawingDoc

Dim swSheet             As SldWorks.Sheet

Dim boolstatus          As Boolean

Dim sFilename           As String

Dim lErrors             As Long

Dim lWarnings           As Long

Dim strSheetName(20)    As String

Dim varSheetName        As Variant

Dim varSheetCount       As Variant

Dim i                   As Long



Private Sub cboFileExt_Change()



End Sub



Private Sub cmdSave_Click()



On Error GoTo error



Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swDraw = swApp.ActiveDoc


If swModel.gettype <> 3 Then

    MsgBox "Open Document is not a Drawing file.", vbCritical, "Wrong Document Type Open"

End If



Set swModelDocExt = swModel.Extension

Set swExportPDFData = swApp.GetExportFileData(1)



varSheetCount = swModel.GetSheetCount()



For i = 1 To varSheetCount


Next i



For i = 0 To varSheetCount - 1

    If i <> 0 Then


    End If

    Set swSheet = swDraw.GetCurrentSheet

    strSheetName(i) = swSheet.GetName

    Set swSheet = Nothing


    varSheetName = strSheetName(i)


    sFilename = swModel.GetTitle & "." & frmMain.cboFileExt.Text



    If swExportPDFData Is Nothing Then MsgBox "Nothing"

    boolstatus = swExportPDFData.SetSheets(swExportData_ExportSpecifiedSheets, varSheetName)


    boolstatus = swModelDocExt.SaveAs(sFilename, 0, 0, swExportPDFData, lErrors, lWarnings)

Next i



Unload frmMain



Exit Sub




MsgBox "An error has occured - Please close and reopen SolidWorks to try again", vbCritical, "Program Error"

Exit Sub



End Sub