Can't get macro to spit out material

Hello everyone. I'm trying to get a list of materials of the parts of an assembly, but the MaterialUserName is not storing any values and I don't know what I am doing wrong

Sub main()
   Set swApp = Application.SldWorks
   Set swAssy = swApp.ActiveDoc
   Components = swAssy.GetComponents(False)

   For i = LBound(Components) To UBound(Components)
       Dim swComp As SldWorks.Component2
       Set swComp = Components(i)
       compname = swComp.Name2
       comproute = swComp.GetPathName
       config = swComp.ReferencedConfiguration
       Set part = swApp.ActiveDoc
       Set part = swApp.OpenDoc6(comproute, 1, 0, "", longstatus, longwarnings)
       MaterialName = part.MaterialUserName
       Debug.Print (MaterialName)
       swApp.ActivateDoc2 "pruebamat1", False, longstatus
       Set part = swApp.ActiveDoc
       part.ClearSelection2 True
       Set myModelView = part.ActiveView
       myModelView.FrameState = swWindowState_e.swWindowMaximized
       Debug.Print (MaterialName)
       swApp.CloseDoc compname
   Next i
   End Sub