Forum Discussion
Lock shapes in PowerPoint, Word and Excel
- Nov 03, 2022
There is no such visual feature in Excel, but the capability of preventing users from moving, editing, or even selecting shapes is present in Excel, and mostly (if not entirely) can be invoked from VBA.
Microsoft Excel terminology is poor in this area, so note that "the ability to lock shapes" is not the same as "the ability to prevent changes to shapes". (It's as though "Locked" means a lock has been installed, not whether that lock is engaged or not.)
Martin is correct about the two-step process -- the changing (if necessary) of Locked status to true, and protecting the worksheet. So see the attached workbook, and let us know why use of Locked status and the worksheet's Protect method (and possibly the Unprotect method) does not satisfy your requirement.
What I do not see is the capability in VBA to set (or unset) the "Lock text" property of the shape I tested. But as this is set by default, perhaps that is not an issue for you.
in Excel the lock mechanism always consists of two steps:
1. changing the object property (locked / unlocked)
2. activate the sheet protection (menu "Review | Protect sheets")
Also for objects like shapes, there is a "Locked" property that you can change. Right-click the shape, and select "Size and Properties..."
If you use the macro recorder, you get this code:
So you can change it to msoTrue to set it to "Locked"
By default, every object has this property set to "Locked", but it only gets activated if you switch on the sheet protection:
In VBA:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
I'm not sure if this answers your question.
I am uploading the image as an attachment.
- Martin_WeissNov 03, 2022Bronze Contributor
I did saw the images and you are right, this functionality is not available in Excel. But I did not know if you were aware of the general lock mechanism of shapes in Excel, that's why I posted my alternative solution.
But I agree, such an easy way to lock/unlock that you showed in Power Point would be appreciated in Excel as well 🙂