Проверяйте...
[vba]Код
Sub checkLockedObj()
'ActiveSheet.Unprotect
Dim cell As Range, shp As Shape
Set cell = ActiveSheet.[B6] ' первая ячейка таблицы с названием фигуры
While Len(cell.Value) > 0
Set shp = ActiveSheet.Shapes(cell.Value)
If cell.Offset(, 1) = 1 Then
shp.Locked = msoTrue
Else
shp.Locked = msoFalse
End If
Set cell = cell.Offset(1)
Wend
'ActiveSheet.Protect
End Sub
[/vba]Если в "боевом" режиме при выполнении макроса защита листа включена, и надо, чтобы она осталась включенной - раскомментируйте строчки с Protect/Unprotect