macro runs on inital bodies in part, but not on new ones hen re-ran. please help

The below code is (to the best of my limited ability) supposed to cycle through all bodies of a part, and rename the faces of each body if they have not yet been renamed. the code works great when I open a part and run it, all faces on all bodies (works if part is a single body or multibody) get renamed.

 

the issue arises when I go and add a new body to the part (unmerged) and run the code/macro again. It does not cycle through the new body and its faces. please advise, and help is appreciated. see code below:

 

Dim SW_App As SldWorks.SldWorks
Dim SW_Model As ModelDoc2
Dim Slctn_Mngr As SelectionMgr
Dim Slctn_Data As SldWorks.SelectData
Dim Slctd_Face As Face2
Dim Slctd_Face_Entity As Entity
Dim Slctd_Face_Name As String
Dim Crrnt_Cmpnt As SldWorks.PartDoc
Dim vSW_Body As Variant
Dim Bool_Rtrn As Boolean
Dim Body_Vrnt As Variant
Dim Cmpnt_Name_S1 As String
Dim Cmpnt_Name_S2 As String
Dim vBody_Arr As Variant
Dim Bodies_Cnt As Integer
Dim Face_Cnt As Integer
Dim instnc As Long

Sub Rename_All_Faces_Main()

Set SW_App = Application.SldWorks
Set SW_Model = SW_App.ActiveDoc

    '// test code for renaming all faces.
    
        'Clear selections.
        SW_Model.ClearSelection2 True
        
        'Get all Bodies
        Set Crrnt_Cmpnt = SW_Model
        'Clear selections.
        SW_Model.ClearSelection2 True
        vBody_Arr = Crrnt_Cmpnt.GetBodies2(-1, False)
        Iterate_Through_Bodies_And_Faces SW_Model, vBody_Arr
        
End Sub
   
Sub Iterate_Through_Bodies_And_Faces(SW_Model As SldWorks.ModelDoc2, vBody_Arr As Variant)

        Bodies_Cnt = 1
        Face_Cnt = 1
        
        For Each vSW_Body In vBody_Arr
    
            'Get count of all faces on body.
            Set Slctn_Mngr = SW_Model.SelectionManager
            Set Slctn_Data = Slctn_Mngr.CreateSelectData
            'Body_Vrnt = Crrnt_Cmpnt.GetBodies2(swAllBodies, True)
            'Set vSW_Body = Body_Vrnt(0)
            Set Slctd_Face = vSW_Body.GetFirstFace
            Cmpnt_Name_S1 = Crrnt_Cmpnt.GetTitle
            Cmpnt_Name_S2 = Replace(Cmpnt_Name_S1, ".SLDPRT", "")
            
            'Debug.Print "Component Name S2 (No Doc Extnsn) = " & Cmpnt_Name_S2
            
            'Clear selections.
            SW_Model.ClearSelection2 True
            
            'Loop for renaming faces.
                Do While Not Slctd_Face Is Nothing
                
                Set Slctd_Face_Entity = Slctd_Face
                
                'Select using IEntity.
                Bool_Rtrn = Slctd_Face_Entity.Select4(True, Slctn_Data)
                
                'Check if face already named.
                Slctd_Face_Name = Crrnt_Cmpnt.GetEntityName(Slctd_Face_Entity)
                
                    'Check if face not yet named, skip if already renamed.
                    If Not Slctd_Face_Name = "" Then
                        Face_Cnt = Face_Cnt + 1
                        Else
                        Bool_Rtrn = SW_Model.SelectedFaceProperties(0, 0, 0, 0, 0, 0, 0, True, Cmpnt_Name_S2 & " - FACE" & Face_Cnt)
                        Face_Cnt = Face_Cnt + 1
                    End If
                
                Set Slctd_Face = Slctd_Face.GetNextFace
                    
                Loop
                
            Bodies_Cnt = Bodies_Cnt + 1
            
    Next vSW_Body

End Sub