Merging Two Macros?

Hey Guys

So I have written a macro (a combo of what I have learnt in the limited VBA/API time I have been learning this stuff and mixing it with the code you guys have in the forums) that saves a drawing document as a PDF and builds the name out of info from the model referenced in the drawing document.

I also have a different macro that saves all open documents as a PDF just with the filename of the drawing then closes them.

I am trying to merge these two macros together so basically save all open documents as a PDF with the first macro then closes the documents. But I cant get it to work, it either gets stuck in a loop on the one document or it saves all the open documents as the name from the first referenced model.

Does anyone know how to easily do this? I am very keen on learning this stuff but need a push in the right direction due to not being very fluent in VBA!

Here is my first Macro;

____________________________________________________________________________

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swDraw As SldWorks.DrawingDoc

Dim swCustProp As CustomPropertyManager

Dim valOut1 As String

Dim valOut2 As String

Dim resolvedValOut1 As String

Dim resolvedValOut2 As String

Dim Filepath As String

Dim ConfigName As String

Dim PartNo As String

Dim FullName As String

Sub main()

Set swApp = Application.SldWorks

Set swDraw = swApp.ActiveDoc

If (swDraw Is Nothing) Or (swDraw.GetType <> swDocDRAWING) Then

Exit Sub

End If

Set swView = swDraw.GetFirstView

Set swView = swView.GetNextView

Set swModel = swView.ReferencedDocument

ConfigName = swView.ReferencedConfiguration

FullName = swModel.GetTitle

PartNo = Left(FullName, Len(FullName) - 7)

Filepath = "C:\Users\m.jones\Desktop\PDF\"

If (swModel.GetType = swDocPART) Then

    Set swCustProp = swModel.Extension.CustomPropertyManager(ConfigName)

    swCustProp.Get2 "Description", valOut1, resolvedValOut1

    swCustProp.Get2 "Revision", valOut2, resolvedValOut2

    swDraw.SaveAs (Filepath + PartNo + "-" + ConfigName + "-" + resolvedValOut2 + " " + resolvedValOut1 + ".PDF")

    MsgBox Filepath + PartNo + "-" + ConfigName + "-" + resolvedValOut2 + " " + resolvedValOut1 + ".PDF" + " Saved as a PDF"

ElseIf (swModel.GetType = swDocASSEMBLY) Then

    Set swCustProp = swModel.Extension.CustomPropertyManager("")

    swCustProp.Get2 "Description", valOut1, resolvedValOut1

    swCustProp.Get2 "Revision", valOut2, resolvedValOut2

 

    swDraw.SaveAs (Filepath + PartNo + "-" + resolvedValOut2 + " " + resolvedValOut1 + ".PDF")

    MsgBox Filepath + PartNo + "-" + resolvedValOut2 + " " + resolvedValOut1 + ".PDF" + " Saved as a PDF"

End If

End Sub

_______________________________________________________________________________

Here is the second Macro

_______________________________________________________________________________

Dim swApp As SldWorks.SldWorks

Dim Part As SldWorks.ModelDoc2

Sub main()

Set swApp = Application.SldWorks

Dim FilePath As String

Dim Pathsize As Long

Dim PathNoExtension As String

Dim NewFilePath As String

swDocs = swApp.GetDocuments

     For i = 0 To UBound(swDocs)

          Set Part = swDocs(i)

          If Part.GetType = swDocDRAWING Then

               FilePath = Part.GetPathName

               Pathsize = Strings.Len(FilePath)

               PathNoExtension = Strings.Left(FilePath, Pathsize - 6)

               NewFilePath = PathNoExtension & "pdf"

               Part.SaveAs2 NewFilePath, 0, True, False

               swApp.QuitDoc Part.GetTitle 'to disable auto close of doc add ' to start of this line

               MsgBox "Saved" & NewFilePath 'to get rid of message box add ' to start of this line

          End If

      Next i

End Sub

SolidworksApi macros