you could take this approach
Sub UnlockDrawingObjects()
Dim sh As Shape
Dim shRng As Range
Dim OutlinedArea As Range
With Sheet1
'turn on protection
.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True
'define OutlinedArea range
Set OutlinedArea = .Cells(26, 2).Resize(13, 2) 'B26:C38
'loop all shapes in worksheet
For Each sh In .Shapes
With sh
'reset to locked
.Locked = True
'set temp range of cells shape object occupies
Set shRng = Range(.TopLeftCell.Address & ":" & .BottomRightCell.Address)
'test if temp range intersects with outlined area, unlock shape if it does
If Not Intersect(OutlinedArea, shRng) Is Nothing Then .Locked = False
End With
Next sh
End With
End Sub
set the protection with DrawingObjects:=True then loop all Shapes in the Worksheet, test if they intersect with the OutlinedArea. if so then unlock them so the items inside the OutlinedArea remain unlocked, whilst anything outside the OutlinedArea is locked.
it's not ideal and a bit of a hack, but hopefully it will achieve what you want.
Bookmarks