Issue Handling Assigned Mass Properties with Macro

I have a macro that exports all of the mass properties for assemblies and their parts into an excel spreadsheet. The problem I'm having though is that whenever it pulls the mass properties for a part that has an assigned mass, it doesn't seem to get the correct data. Instead it gets the calculated mass. I would like it to get the assigned mass data, if it's there.

Here's a portion of the code:


<p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Sub SwExtractData()</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim swApp As ISldWorks</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim swModel As IModelDoc2</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim swModExt As IModelDocExtension</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim swAssembly As IAssemblyDoc</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim swComp As IComponent2</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim MassProp As IMassProperty</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim Component As Variant</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim Components As Variant</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim Bodies As Variant</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim BodyInfo As Variant</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim CenOfM As Variant</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim RetBool As Boolean</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim RetVal As Long</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Dim Description As String</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">'Get active drawing view</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set swApp = Application.SldWorks</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set swModel = swApp.ActiveDoc</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set swAssembly = swModel</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set swModExt = swModel.Extension</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set MassProp = swModExt.CreateMassProperty</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">'Open Excel</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">OutputPath = Environ("USERPROFILE") & "\\Desktop\\"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">OutputFN = swModel.GetTitle & ".xlsx"</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set xlApp = Excel.Application</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlApp.Visible = True</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set xlWorkBooks = Excel.Workbooks</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set xlBook = xlWorkBooks.Add()</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Set xlsheet = xlBook.Worksheets("Sheet1")</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">'Populate Excel Spreadsheet Titles</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("A1").value = "Type"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("B1").value = "Part"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("C1").value = "Description"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("D1").value = "Material"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("E1").value = "Volume"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("F1").value = "Surface Area"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("G1").value = ""</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("H1").value = ""</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.Range("I1").value = "Weight"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;"><span style="font-size: 10pt;"><br></span></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">'Set current row to 2</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlCurRow = 2</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">RetVal = swAssembly.ResolveAllLightWeightComponents(False)</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Components = swAssembly.GetComponents(False)</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">'On Error Resume Next</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">'Loop that populates excel spreadsheet</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">For Each Component In Components</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">    Set swComp = Component</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">        If swComp.GetSuppression <> 0 And Not swComp.IsHidden(False) Then</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">  </p><p>            Dim swModelComp As SldWorks.ModelDoc2</p><p>            Set swModelComp = swComp.GetModelDoc</p><p>            </p><p>            If swModelComp.GetType = swDocASSEMBLY Then</p><p>                Set MassProp = swModelComp.Extension.CreateMassProperty</p><p>            Else</p><p>                Set MassProp = swModExt.CreateMassProperty</p><p>            End If</p><p>            </p><p>            'MassProp.UserAssigned = True</p><p>            MassProp.UseSystemUnits = False 'Use document units</p><p>            Bodies = swComp.GetBodies2(swAllBodies)</p><p>            RetBool = MassProp.AddBodies(Bodies)</p><p>            CenOfM = MassProp.CenterOfMass</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("B" & xlCurRow).value = swcomp.GetPathName</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("C" & xlCurRow).value = GetRefConfigProps(swComp, "Description")</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("D" & xlCurRow).value = GetDefaultPartProps(swComp, "Material")</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("E" & xlCurRow).value = Round(MassProp.Volume, 2)</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("F" & xlCurRow).value = Round(MassProp.SurfaceArea, 2)</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("I" & xlCurRow).value = Round(MassProp.Mass, 5)</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("K" & xlCurRow).value = Round(CenOfM(1), 5)</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("M" & xlCurRow).value = Round(CenOfM(2), 5)</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            xlsheet.Range("P" & xlCurRow).value = Round(-(CenOfM(0)), 5)</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">        'Tests to see if last three letters in file name are asm or prt</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            If LCase(Right(swComp.GetPathName, 3)) = "asm" Then</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">                    xlsheet.Range("A" & xlCurRow).value = "Assembly"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">                ElseIf LCase(Right(swComp.GetPathName, 3)) = "prt" Then</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">                    xlsheet.Range("A" & xlCurRow).value = "Part"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">                Else</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">                    xlsheet.Range("A" & xlCurRow).value = "ERROR IN MASS PROPS OUTPUT"</p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">            End If 'Right 3 of file extension</p><p></p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">    xlCurRow = xlCurRow + 1</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">    End If</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">Next Component</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">xlsheet.UsedRange.EntireColumn.AutoFit</p><p></p><p style="font-size: 11px; font-family: Verdana, Arial, Helvetiva, sans-serif;">End Sub</p><p></p>
SolidworksApi macros