You did not mention you shapes where grouped.
Sub assign_macro()
Dim ItemNames As String
Dim Item As Variant
Dim Index As Long
Dim GroupName As String
Dim ArrayItems As Variant
Set wb = ActiveWorkbook
Set wsacf = wb.Sheets("acf")
Set wsmap = wb.Sheets("roommap")
Set wsredi = wb.Sheets("redi")
Set wsam = wb.Sheets("addmac")
Sheet5.Shapes("Rectangle 1").OnAction = "Sheet5.rm222m"
GroupName = "Group 2"
ItemNames = ""
With Sheet5.Shapes(GroupName)
For Index = 1 To .GroupItems.Count
ItemNames = ItemNames & .GroupItems(Index).Name & ","
Next
.Ungroup
End With
ItemNames = Left(ItemNames, Len(ItemNames) - 1)
' use when macros for all controls exist
' For Each Item In Split(ItemNames, ",")
' Sheet5.Shapes(Item).OnAction = "Sheet5." & Item & "m"
' Next
'do first shape only
Item = Split(ItemNames, ",")(0)
Sheet5.Shapes(Split(Item, ",")(0)).OnAction = "Sheet5." & Item & "m"
Sheet5.Shapes.Range(Split(ItemNames, ",")).Group.Name = GroupName
End Sub
Bookmarks