Quote Originally Posted by SamT View Post
In Shapes.Range(Index), Index can be a number or a string.

If the Index of the Range is a String, it must be the name of a ShapeRange Object which is a Shapes Collection My bad, I missed this before.

With the Shapes Collection. one uses the Item Method, (Default of the Shapes collection,) thusly Shapes(index) where Index is the Name of the Shape to return a particular Shape.

I now think that you wanted

'Assumes that each Shape's name is stored in a cell in Target.
For Each strRng in Target
ActiveSheet.Shapes(strRng).Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2.
I tried your above method but it gave me an error, so I'm not seeing this as a possibility. Fill is not a member of the Shapes object. You have to get to .Item or .Range. Since .Range allows me to select one or multiple shapes, I still think .Range is the best method.